ContactManager ContactManager ContactManager ContactManager Class

定義

Windows アドレス帳に保持された PeerContact オブジェクトのコレクションを表します。Represents a collection of PeerContact objects which persist in a Windows Address Book.

public ref class ContactManager sealed : IDisposable
public sealed class ContactManager : IDisposable
type ContactManager = class
    interface IDisposable
Public NotInheritable Class ContactManager
Implements IDisposable
継承
ContactManagerContactManagerContactManagerContactManager
実装

次のコード例を列挙する方法を示しています、PeerNearMeとして追加し、PeerContactローカルContactManager:The following example code illustrates how to enumerate a PeerNearMe and add it as a PeerContact to the 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;
}

注釈

このクラスには、パブリック コンス トラクターがありませんへの参照がによって返されるため、PeerCollaborationクラス。This class has no public constructors, since a reference to it is returned by the PeerCollaboration class.

アドレス帳に関連付けられているPeerContact管理には、ホスト ピアとリモート ピアに関連付けられているものが含まれます。Address books that are associated with PeerContact management include those associated with the host peer and a remote peer. いずれかのコンピューターが他のピアとの共同作業します。ピアがローカル、リモート ピアが、ホスト ピアではなくに追加できる、ContactManagerホスト ピアの。Either computer may collaborate with other peers; when a peer is local to the remote peer but not the host peer, it can be added to the ContactManager of the host peer. 特定の操作、ContactManagerクラスなど、AddContactDeleteContactリモート ピアの Windows アドレス帳で実行されている、関連する操作を相互に関連付けたり、します。Certain operations on the ContactManager class, such as AddContact and DeleteContact, correlate to the associated operations being performed on the Windows Address book of the remote peer.

ホスト ピアがのこの永続的ストレージへのアクセスを持つPeerContactについては、ピアが参加する予定がアプリケーションと関連付けることができます。The host peer has access to this persistent storage for PeerContact information, which can be associated with the applications in which a peer intends to participate. APeerApplicationのユーザーとして自分自身を識別できます、ContactManagerコンピューター上の永続的なストアです。A PeerApplication can identify itself as a user of a ContactManager persistent store on a computer.

プロパティ

LocalContact LocalContact LocalContact LocalContact

ローカル ピアを表す PeerContact を取得します。Gets the PeerContact representing the local peer.

SynchronizingObject SynchronizingObject SynchronizingObject SynchronizingObject

このプロパティ値を設定すると、非同期操作の結果として発生したわけではないすべてのイベントが、特定の SynchronizingObject を作成したスレッドでコールバックされるイベント ハンドラーに関連付けられます。When this property value is set, all events not fired as the result of an asynchronous operation will have the associated event handlers called back on the thread that created the specific SynchronizingObject.

メソッド

AddContact(PeerContact) AddContact(PeerContact) AddContact(PeerContact) AddContact(PeerContact)

指定した PeerContact をローカル ピアの ContactManager に追加します。Adds the specified PeerContact to the ContactManager of the local peer.

CreateContact(PeerNearMe) CreateContact(PeerNearMe) CreateContact(PeerNearMe) CreateContact(PeerNearMe)

指定された PeerContact オブジェクトの PeerNearMe インスタンスを作成します。Creates a PeerContact instance for the specified PeerNearMe object.

CreateContactAsync(PeerNearMe, Object) CreateContactAsync(PeerNearMe, Object) CreateContactAsync(PeerNearMe, Object) CreateContactAsync(PeerNearMe, Object)

指定された PeerNearMe オブジェクトのコンタクト インスタンスを作成します。Creates a contact instance for the specified PeerNearMe object.

DeleteContact(PeerContact) DeleteContact(PeerContact) DeleteContact(PeerContact) DeleteContact(PeerContact)

指定した PeerContact を、ローカル ピアの ContactManager から削除します。Removes the specified PeerContact from the ContactManager of the local peer.

DeleteContact(PeerName) DeleteContact(PeerName) DeleteContact(PeerName) DeleteContact(PeerName)

指定した PeerName に関連付けられている PeerContact をローカル ピアの ContactManager から削除します。Removes the PeerContact associated with the specified PeerName from the ContactManager of the local peer.

Dispose() Dispose() Dispose() Dispose()

この ContactManager オブジェクトによって使用されているすべてのリソースを解放します。Releases all resources used by the ContactManager object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetContact(PeerName) GetContact(PeerName) GetContact(PeerName) GetContact(PeerName)

指定された PeerContactPeerName オブジェクトを返します。Returns the PeerContact object for the specified PeerName.

GetContacts() GetContacts() GetContacts() GetContacts()

リモート ピアの PeerContactCollection 内のすべての連絡先を格納する ContactManager を返します。Returns a PeerContactCollection that contains all contacts within the ContactManager of the remote peer.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
UpdateContact(PeerContact) UpdateContact(PeerContact) UpdateContact(PeerContact) UpdateContact(PeerContact)

PeerContact に関連付けられているデータを更新します。Updates the data associated with the PeerContact.

イベント

ApplicationChanged ApplicationChanged ApplicationChanged ApplicationChanged

PeerApplication 内の PeerContact に関連付けられた ContactManager が変更されたときに発生します。Raised whenever a PeerApplication associated with a PeerContact in the ContactManager has changed.

CreateContactCompleted CreateContactCompleted CreateContactCompleted CreateContactCompleted

CreateContact(PeerNearMe) メソッドが完了したときに発生します。Raised whenever a CreateContact(PeerNearMe) method has completed.

NameChanged NameChanged NameChanged NameChanged

PeerName 内の PeerContact に関連付けられた ContactManager が変更されたときに発生します。Raised whenever the PeerName associated with a PeerContact in the ContactManager has changed.

ObjectChanged ObjectChanged ObjectChanged ObjectChanged

連絡先の登録済みの PeerObject オブジェクト内のオブジェクトが変更されたときに発生します。Raised whenever an object within a contact's registered PeerObject objects has changed.

PresenceChanged PresenceChanged PresenceChanged PresenceChanged

PeerContact 内の ContactManager のプレゼンス ステータスが変更されたときに発生します。Raised whenever the presence status of a PeerContact in the ContactManager has changed.

SubscriptionListChanged SubscriptionListChanged SubscriptionListChanged SubscriptionListChanged

サブスクライブされた連絡先の一覧が変更されたときに発生します。Raised when the list of subscribed contacts changes.

適用対象

こちらもご覧ください