ContactManager Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en samling PeerContact objekt som finns kvar i en Windows adressbok.
public ref class ContactManager sealed : IDisposable
public sealed class ContactManager : IDisposable
type ContactManager = class
interface IDisposable
Public NotInheritable Class ContactManager
Implements IDisposable
- Arv
-
ContactManager
- Implementeringar
Exempel
Följande exempelkod visar hur du räknar upp en PeerNearMe och lägger till den som en PeerContact i den lokala 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;
}
Kommentarer
Den här klassen har inga offentliga konstruktorer eftersom en referens till den PeerCollaboration returneras av klassen.
Adressböcker som är associerade med PeerContact hantering inkluderar de som är associerade med värd peer och en fjärransluten peer. Båda datorerna kan samarbeta med andra peer-datorer. när en peer är lokal för fjärr peer men inte värd peer, kan den läggas till ContactManager i värd peer. Vissa åtgärder i klassen ContactManager, till exempel AddContact och DeleteContact, korrelerar med de associerade åtgärder som utförs i Windows-adressboken för fjärr-peer.
Värd peer har åtkomst till denna beständiga lagring för PeerContact information, som kan associeras med de program där en peer avser att delta. En PeerApplication kan identifiera sig som en användare av ett ContactManager beständigt arkiv på en dator.
Egenskaper
| Name | Description |
|---|---|
| LocalContact |
Hämtar den PeerContact lokala peer-koden. |
| SynchronizingObject |
När det här egenskapsvärdet har angetts kommer alla händelser som inte utlöses till följd av en asynkron åtgärd att anropa de associerade händelsehanterarna på tråden som skapade den specifika SynchronizingObject. |
Metoder
| Name | Description |
|---|---|
| AddContact(PeerContact) |
Lägger till den angivna PeerContact till den ContactManager lokala peer-peern. |
| CreateContact(PeerNearMe) |
Skapar en PeerContact instans för det angivna PeerNearMe objektet. |
| CreateContactAsync(PeerNearMe, Object) |
Skapar en kontaktinstans för det angivna PeerNearMe objektet. |
| DeleteContact(PeerContact) |
Tar bort den angivna PeerContact från den ContactManager lokala peer-servern. |
| DeleteContact(PeerName) |
Tar bort den PeerContact som är associerad med den angivna PeerName från den ContactManager lokala peer-peern. |
| Dispose() |
Frigör alla resurser som används av ContactManager objektet. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetContact(PeerName) |
Returnerar objektet PeerContact för den angivna PeerName. |
| GetContacts() |
Returnerar en PeerContactCollection som innehåller alla kontakter i ContactManager fjärr peer-filen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| UpdateContact(PeerContact) |
Uppdaterar data som är associerade med PeerContact. |
Händelser
| Name | Description |
|---|---|
| ApplicationChanged |
Upphöjt när en PeerApplication associerad med en PeerContact i har ändrats ContactManager . |
| CreateContactCompleted |
Upphöjt när en CreateContact(PeerNearMe) metod har slutförts. |
| NameChanged |
Upphöjt när associerad PeerName med en PeerContact i har ändrats ContactManager . |
| ObjectChanged |
Utlöses när ett objekt i en kontakts registrerade PeerObject objekt har ändrats. |
| PresenceChanged |
Upphöjt när närvarostatusen för en PeerContact i har ändrats ContactManager . |
| SubscriptionListChanged |
Upphöjt när listan över prenumerationskontakter ändras. |