PeerCollaboration.RegisterApplication 方法

定義

針對與發出呼叫的對等進行共同作業工作階段註冊指定的 PeerApplication

public:
 static void RegisterApplication(System::Net::PeerToPeer::Collaboration::PeerApplication ^ application, System::Net::PeerToPeer::Collaboration::PeerApplicationRegistrationType type);
[System.Security.SecurityCritical]
public static void RegisterApplication (System.Net.PeerToPeer.Collaboration.PeerApplication application, System.Net.PeerToPeer.Collaboration.PeerApplicationRegistrationType type);
[<System.Security.SecurityCritical>]
static member RegisterApplication : System.Net.PeerToPeer.Collaboration.PeerApplication * System.Net.PeerToPeer.Collaboration.PeerApplicationRegistrationType -> unit
Public Shared Sub RegisterApplication (application As PeerApplication, type As PeerApplicationRegistrationType)

參數

application
PeerApplication

要在相關聯的範圍 (全域、區域或連結區域) 內註冊發出呼叫之對等的 PeerApplication

type
PeerApplicationRegistrationType

要執行的註冊類型。 可以只針對發出呼叫的對等註冊應用程式,也可以針對使用該電腦的所有對等註冊應用程式。

屬性

例外狀況

  • Path傳遞至 applicationPeerApplication 物件上的 屬性為 null

  • 提供的對等應用程式執行個體具有與已註冊之應用程式相同的全域唯一 Id。 必須取消註冊現有的註冊,才能使用提供的識別項來註冊新的應用程式。

applicationtype 參數不可以是 null。 兩個參數都必須指定。

Type 參數未設定為 PeerApplicationRegistrationType 列舉中的已知值。

呼叫者必須先登入基礎結構,RegisterApplication(PeerApplication, PeerApplicationRegistrationType) 作業才能完成。

範例

下列程式代碼範例說明如何使用共同作業基礎結構註冊應用程式:

// Registering Notepad.exe as a collab application with a fixed GUID.
// Note: If you're using the application to send invitations,
// the same application with the same GUID must be registered on the remote peer machine.
private static PeerApplication RegisterCollabApp()
{
    PeerApplication application = null;
    string pathToApp = "%SystemRoot%\\notepad.exe";
    Guid appGuid = new Guid(0xAAAAAAAA, 0xFADE, 0xDEAF, 0xBE, 0xEF, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAE);

    application = new PeerApplication();
    application.Id = appGuid;
    application.Path = pathToApp;
    application.Description = "Peer Collaboration Sample -- notepad.exe";
    application.PeerScope = PeerScope.All;
    application.CommandLineArgs = "n";
    application.Data = ASCIIEncoding.ASCII.GetBytes("Test");

    Console.WriteLine("Attempting to register the application \"notepad.exe\"...");
    try
    {

        PeerApplicationCollection pac = PeerCollaboration.GetLocalRegisteredApplications(PeerApplicationRegistrationType.AllUsers);
        if (pac.Contains(application))
        {
            Console.WriteLine("The application is already registered on the peer.");
        }
        else
        {
            PeerCollaboration.RegisterApplication(application, PeerApplicationRegistrationType.AllUsers);
            Console.WriteLine("Application registration succeeded!");
        }
    }
    catch (ArgumentException argEx)
    {
        Console.WriteLine("The application was previously registered with the Peer Collaboration Infrastructure: {0}.", argEx.Message);
    }
    catch (PeerToPeerException p2pEx)
    {
        Console.WriteLine("The application failed to register with the Peer Collaboration Infrastructure: {0}", p2pEx.Message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("An unexpected exception occurred when trying to register the application: {0}.", ex.Message);
    }
    return application;
}

備註

呼叫端對等需要先使用 SignIn 方法登入對等共同作業基礎結構,再呼叫此方法。

存取這個方法需要 PermissionStateUnrestricted。 當共同作業會話開始時, Peer 就會建立此狀態。

適用於