ContactManager Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili kumpulan PeerContact objek yang bertahan dalam Buku Alamat Windows.
public ref class ContactManager sealed : IDisposable
public sealed class ContactManager : IDisposable
type ContactManager = class
interface IDisposable
Public NotInheritable Class ContactManager
Implements IDisposable
- Warisan
-
ContactManager
- Penerapan
Contoh
Contoh kode berikut mengilustrasikan cara menghitung PeerNearMe dan menambahkannya sebagai PeerContact ke lokal ContactManager:
// Displays all contacts and asssociated peer endpoints (PeerEndPoint) in the PeerContactCollection.
private static void DisplayContacts(PeerContactCollection peerContactsCollection)
{
if (peerContactsCollection == null ||
peerContactsCollection.Count == 0)
{
Console.WriteLine("No contacts to display. To add a contact select option 0 from the menu.");
}
else
{
foreach (PeerContact pc in peerContactsCollection)
{
Console.WriteLine("The contact is: {0}", pc.DisplayName);
DisplayEndpoints(pc.PeerEndPoints);
}
}
return;
}
//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------
// Displays all peer end points (PeerEndPoint) in the PeerEndPointCollection.
private static void DisplayEndpoints(PeerEndPointCollection endpointCollection)
{
if (endpointCollection == null || endpointCollection.Count == 0)
{
Console.WriteLine("No peer endpoints in the collection to display.");
}
else
{
foreach (PeerEndPoint pep in endpointCollection)
{
Console.WriteLine("PeerEndPoint is: {0}", pep);
Console.WriteLine("PeerEndPoint data is:\n Name: {0}\n EndPoint IP address: {1}\n . Port: {2}\n",
pep.Name,
pep.EndPoint.Address,
pep.EndPoint.Port);
}
}
return;
}
//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------
//List PeerNearMe objects that may be added as contacts.
private static void AddContact()
{
PeerNearMeCollection pnmc = null;
PeerContactCollection peerContacts = null;
bool peerNameFound = false;
PeerApplication application = null;
try
{
Console.WriteLine("Listing the existing contacts...");
peerContacts = PeerCollaboration.ContactManager.GetContacts();
}
catch (PeerToPeerException p2pEx)
{
Console.WriteLine("The Peer Collaboration Infrastructure is not responding to the contact enumeration request: {0}", p2pEx.Message);
}
catch (Exception ex)
{
Console.WriteLine("An unexpected error occurred while attempting to obtain the contact list: {0}", ex.Message);
}
DisplayContacts(peerContacts);
try
{
//Adds one of the PeerNearMe objects as a contact.
pnmc = GetPeersNearMe();
Console.WriteLine("Please enter the nickname of the peer you wish to add as a contact:");
string peerNameToAdd = Console.ReadLine();
application = RegisterCollabApp();
foreach (PeerNearMe pnm in pnmc)
{
PeerInvitationResponse res = null;
if (pnm.Nickname.Contains(peerNameToAdd))
{
peerNameFound = true;
if (!peerContacts.ToString().Contains(pnm.Nickname))
{
Console.WriteLine("Adding peer {0} to the contact list.", pnm.Nickname);
pnm.AddToContactManager();
}
else
{
Console.WriteLine("This peer already exists in your contact list.");
Console.WriteLine("Sending invitation using the Contact structure instead of the PeerNearMe.");
foreach (PeerContact pc in peerContacts)
{
if (pc.Nickname.Equals(pnm.Nickname))
{
res = pnm.Invite(application, "Peer Collaboration Sample", application.Data);
if (res.PeerInvitationResponseType == PeerInvitationResponseType.Accepted)
{
Console.WriteLine("Invitation to contact succeeded.");
}
else
{
Console.WriteLine("Invitation to contact {0}.", res.PeerInvitationResponseType);
}
}
}
}
}
}
if (!peerNameFound)
{
Console.WriteLine("No such peer exists near you. Cannot add to contacts.");
return;
}
peerContacts = PeerCollaboration.ContactManager.GetContacts();
Console.WriteLine("Listing the contacts again...");
DisplayContacts(peerContacts);
}
catch (Exception ex)
{
Console.WriteLine("Error adding a contact: {0}", ex.Message);
}
finally
{
application.Dispose();
}
return;
}
Keterangan
Kelas ini tidak memiliki konstruktor publik, karena referensi ke kelas tersebut dikembalikan oleh PeerCollaboration kelas .
Buku alamat yang terkait dengan PeerContact manajemen mencakup buku yang terkait dengan rekan host dan serekan jarak jauh. Salah satu komputer dapat berkolaborasi dengan rekan-rekan lain; ketika serekan lokal ke peer jarak jauh tetapi bukan serekan host, itu dapat ditambahkan ke ContactManager peer host. Operasi tertentu pada ContactManager kelas , seperti AddContact dan DeleteContact, berkorelasi dengan operasi terkait yang dilakukan pada buku Alamat Windows dari peer jarak jauh.
Serekan host memiliki akses ke penyimpanan persisten ini untuk PeerContact informasi, yang dapat dikaitkan dengan aplikasi di mana serekan berniat untuk berpartisipasi. PeerApplication dapat mengidentifikasi dirinya sebagai pengguna ContactManager penyimpanan persisten di komputer.
Properti
LocalContact |
Mendapatkan yang PeerContact mewakili peer lokal. |
SynchronizingObject |
Ketika nilai properti ini diatur, semua peristiwa yang tidak diaktifkan sebagai hasil dari operasi asinkron akan memiliki penanganan aktivitas terkait yang dipanggil kembali pada utas yang membuat spesifik SynchronizingObject. |
Metode
AddContact(PeerContact) |
Menambahkan yang ditentukan PeerContact ke ContactManager serekan lokal. |
CreateContact(PeerNearMe) |
Membuat instans PeerContact untuk objek yang ditentukan PeerNearMe . |
CreateContactAsync(PeerNearMe, Object) |
Membuat instans kontak untuk objek yang ditentukan PeerNearMe . |
DeleteContact(PeerContact) |
Menghapus yang ditentukan PeerContact dari ContactManager peer lokal. |
DeleteContact(PeerName) |
Menghapus yang PeerContact terkait dengan yang ditentukan PeerName dari ContactManager peer lokal. |
Dispose() |
Merilis semua sumber daya yang ContactManager digunakan oleh objek . |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetContact(PeerName) |
Mengembalikan PeerContact objek untuk yang ditentukan PeerName. |
GetContacts() |
Mengembalikan yang PeerContactCollection berisi semua kontak dalam ContactManager serekan jarak jauh. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
UpdateContact(PeerContact) |
Updates data yang terkait dengan PeerContact. |
Acara
ApplicationChanged |
Dimunculkan setiap kali yang PeerApplication terkait dengan PeerContact dalam ContactManager telah berubah. |
CreateContactCompleted |
Dimunculkan setiap kali CreateContact(PeerNearMe) metode selesai. |
NameChanged |
Dimunculkan setiap kali yang PeerName terkait dengan PeerContact dalam ContactManager telah berubah. |
ObjectChanged |
Dimunculkan setiap kali objek dalam objek terdaftar PeerObject kontak telah berubah. |
PresenceChanged |
Dinaikkan setiap kali status kehadiran di PeerContactContactManager telah berubah. |
SubscriptionListChanged |
Muncul saat daftar kontak berlangganan berubah. |