ContactManager Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een verzameling PeerContact-objecten die zich in een Windows adresboek bevinden.
public ref class ContactManager sealed : IDisposable
public sealed class ContactManager : IDisposable
type ContactManager = class
interface IDisposable
Public NotInheritable Class ContactManager
Implements IDisposable
- Overname
-
ContactManager
- Implementeringen
Voorbeelden
De volgende voorbeeldcode illustreert hoe u een PeerNearMe opsomming maakt en deze toevoegt als een PeerContact aan de lokale 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;
}
Opmerkingen
Deze klasse heeft geen openbare constructors, omdat er een verwijzing naar wordt geretourneerd door de PeerCollaboration klasse.
Adresboeken die zijn gekoppeld aan PeerContact beheer, zijn de adresboeken die zijn gekoppeld aan de hostpeer en een externe peer. Beide computers kunnen samenwerken met andere peers; wanneer een peer lokaal is voor de externe peer, maar niet de hostpeer, kan deze worden toegevoegd aan de ContactManager hostpeer. Bepaalde bewerkingen in de klasse ContactManager, zoals AddContact en DeleteContact, correleren met de bijbehorende bewerkingen die worden uitgevoerd in het Windows adresboek van de externe peer.
De hostpeer heeft toegang tot deze permanente opslag voor PeerContact informatie, die kan worden gekoppeld aan de toepassingen waarin een peer van plan is deel te nemen. Een PeerApplication kan zichzelf identificeren als een gebruiker van een ContactManager permanente opslag op een computer.
Eigenschappen
| Name | Description |
|---|---|
| LocalContact |
Hiermee haalt u het PeerContact vertegenwoordigen van de lokale peer op. |
| SynchronizingObject |
Wanneer deze eigenschapswaarde is ingesteld, worden alle gebeurtenissen die niet worden geactiveerd als gevolg van een asynchrone bewerking, de bijbehorende gebeurtenis-handlers teruggeroepen op de thread die de specifieke SynchronizingObjectheeft gemaakt. |
Methoden
| Name | Description |
|---|---|
| AddContact(PeerContact) |
Hiermee voegt u de opgegeven PeerContact waarde toe aan de ContactManager lokale peer. |
| CreateContact(PeerNearMe) |
Hiermee maakt u een PeerContact exemplaar voor het opgegeven PeerNearMe object. |
| CreateContactAsync(PeerNearMe, Object) |
Hiermee maakt u een exemplaar van een contactpersoon voor het opgegeven PeerNearMe object. |
| DeleteContact(PeerContact) |
Hiermee verwijdert u de opgegeven PeerContact waarde uit de ContactManager lokale peer. |
| DeleteContact(PeerName) |
Hiermee verwijdert u de PeerContact gekoppelde aan de opgegeven PeerName van de ContactManager lokale peer. |
| Dispose() |
Alle resources die door het ContactManager object worden gebruikt, worden vrijgegeven. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetContact(PeerName) |
Retourneert het PeerContact object voor de opgegeven PeerName. |
| GetContacts() |
Retourneert een PeerContactCollection die alle contactpersonen binnen de ContactManager externe peer bevat. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| UpdateContact(PeerContact) |
Hiermee worden de gegevens bijgewerkt die zijn gekoppeld aan de PeerContact. |
gebeurtenis
| Name | Description |
|---|---|
| ApplicationChanged |
Verhoogd wanneer een PeerApplication gekoppeld aan een PeerContact in de ContactManager wijziging is gewijzigd. |
| CreateContactCompleted |
Wordt gegenereerd wanneer een CreateContact(PeerNearMe) methode is voltooid. |
| NameChanged |
Verhoogd wanneer de PeerName gekoppelde aan een PeerContact in de ContactManager wijziging is gewijzigd. |
| ObjectChanged |
Wordt gegenereerd wanneer een object binnen de geregistreerde PeerObject objecten van een contactpersoon is gewijzigd. |
| PresenceChanged |
Wordt gegenereerd wanneer de aanwezigheidsstatus van een PeerContact in de app ContactManager is gewijzigd. |
| SubscriptionListChanged |
Wordt gegenereerd wanneer de lijst met geabonneerde contactpersonen wordt gewijzigd. |