ContactManager Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una colección de objetos PeerContact que se conservan en una libreta de direcciones de Windows.
public ref class ContactManager sealed : IDisposable
public sealed class ContactManager : IDisposable
type ContactManager = class
interface IDisposable
Public NotInheritable Class ContactManager
Implements IDisposable
- Herencia
-
ContactManager
- Implementaciones
Ejemplos
En el código de ejemplo siguiente se muestra cómo enumerar PeerNearMe y agregarlo como PeerContact a la instancia local 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;
}
Comentarios
Esta clase no tiene constructores públicos, ya que la PeerCollaboration clase devuelve una referencia a ella.
Las libretas de direcciones asociadas a PeerContact la administración incluyen las asociadas al host del mismo nivel y a un mismo nivel remoto. Cualquier equipo puede colaborar con otros compañeros; cuando un elemento del mismo nivel es local para el mismo nivel remoto, pero no el del mismo nivel del host, se puede agregar al ContactManager del mismo nivel del host. Ciertas operaciones de la clase /> de
El host del mismo nivel tiene acceso a este almacenamiento persistente para obtener PeerContact información, que se puede asociar a las aplicaciones en las que un elemento del mismo nivel pretende participar. Un PeerApplication puede identificarse como usuario de un ContactManager almacén persistente en un equipo.
Propiedades
| Nombre | Description |
|---|---|
| LocalContact |
Obtiene el objeto PeerContact que representa el elemento del mismo nivel local. |
| SynchronizingObject |
Cuando se establece este valor de propiedad, todos los eventos que no se desencadenan como resultado de una operación asincrónica tendrán los controladores de eventos asociados a los que se llamó de nuevo en el subproceso que creó el específico SynchronizingObject. |
Métodos
| Nombre | Description |
|---|---|
| AddContact(PeerContact) |
Agrega el objeto especificado PeerContact al ContactManager del mismo nivel local. |
| CreateContact(PeerNearMe) |
Crea una PeerContact instancia para el objeto especificado PeerNearMe . |
| CreateContactAsync(PeerNearMe, Object) |
Crea una instancia de contacto para el objeto especificado PeerNearMe . |
| DeleteContact(PeerContact) |
Quita el objeto especificado PeerContact del ContactManager del mismo nivel local. |
| DeleteContact(PeerName) |
Quita el PeerContact asociado al especificado PeerName del ContactManager elemento del mismo nivel local. |
| Dispose() |
Libera todos los recursos utilizados por el ContactManager objeto . |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetContact(PeerName) |
Devuelve el PeerContact objeto para el objeto especificado PeerName. |
| GetContacts() |
Devuelve un PeerContactCollection objeto que contiene todos los contactos dentro ContactManager del del mismo nivel remoto. |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| UpdateContact(PeerContact) |
Actualiza los datos asociados a .PeerContact |
Eventos
| Nombre | Description |
|---|---|
| ApplicationChanged |
Se genera cada vez que se ha cambiado un PeerApplication objeto asociado a en PeerContact .ContactManager |
| CreateContactCompleted |
Se genera cada vez que se ha completado un CreateContact(PeerNearMe) método. |
| NameChanged |
Se genera cada vez que el PeerName asociado a un PeerContact elemento en ha ContactManager cambiado. |
| ObjectChanged |
Se genera cada vez que un objeto dentro de los objetos registrados PeerObject de un contacto ha cambiado. |
| PresenceChanged |
Se genera cada vez que el estado de presencia de en PeerContact ha ContactManager cambiado. |
| SubscriptionListChanged |
Se genera cuando cambia la lista de contactos suscritos. |