Jazyk

PeerNameResolver.Resolve Metoda

Definice

Přeloží PeerName objekt na PeerNameRecord protokol PNRP.

Přetížení

Name Description
Resolve(PeerName)

Vyřeší zadané PeerName v rámci všech cloudů, které jsou známé volajícímu partnerskému uzlu.

Resolve(PeerName, Int32)

Vyřeší zadaný název partnerského uzlu ve všech cloudech známých volajícímu partnerskému uzlu a vrátí maximálně zadaný počet PeerNameRecord objektů.

Resolve(PeerName, Cloud)

Přeloží zadanou PeerName v zadaném Cloudparametru .

Resolve(PeerName, Cloud, Int32)

Vyřeší zadaný PeerName v zadaném Cloudparametru , který nevrací více než zadaný počet PeerNameRecord objektů.

Poznámky

Tato metoda přidruží názvy partnerských uzlů ke cloudům. PeerNameResolver Volání metody je podobné volání Resolve metody pro každý záznam názvu partnerského uzlu v souboru PeerNameRecordCollection. Všimněte si, že použití metody Resolve u záznamu názvu jednotlivého partnerského uzlu zneplatní překlad více názvů partnerských uzlů.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jsou stejné v parametrech, které jsou předány, s tím rozdílem, že Metoda ResolveAsync obsahuje systémový token v seznamu parametrů pro asynchronní zpracování událostí.

Cloud Pokud parametr není zadán, metoda použije Available zástupce k vyplnění parametrů cloudu. maxRecords Pokud parametr chybí, výchozí hodnota nuly způsobí ArgumentOutOfRangeException vyvolání výjimky.

Tato událost bude vyvolána také v případě, že se operace překladu dokončí omylem nebo je zrušena.

Resolve(PeerName)

Vyřeší zadané PeerName v rámci všech cloudů, které jsou známé volajícímu partnerskému uzlu.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName);
member this.Resolve : System.Net.PeerToPeer.PeerName -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName) As PeerNameRecordCollection

Parametry

peerName
PeerName

Řešení PeerName .

Návraty

A PeerNameRecordCollection , který obsahuje všechny záznamy názvu partnerského vztahu (reprezentované jako PeerNameRecord objekty) přidružené k zadanému názvu partnerského vztahu. Pro nezabezpečené názvy partnerských uzlů může být stejné PeerName zaregistrované různými uživateli ve stejném Clouda přidružené k různým koncovým bodům.

Výjimky

Parametr peerName je nastaven na nullhodnotu .

Zadaný název partnerského vztahu nelze přeložit.

Příklady

Následující příklad kódu ukazuje, jak vyřešit PeerName publikované v libovolném Cloud.

static void Main(string[] args)
{
    try
    {

        if (args.Length != 1)
        {
            Console.WriteLine("Usage: PeerNameResolver.exe <PeerNameToResolve>");
            return;
        }

        // create a resolver object to resolve a Peer Name that was previously published
        PeerNameResolver resolver = new PeerNameResolver();
        // The Peer Name to resolve must be passed as the first
        // command line argument to the application
        PeerName peerName = new PeerName(args[0]);
        // Resolve the Peer Name
        // This is a network operation and will block until the resolve completes
        PeerNameRecordCollection results = resolver.Resolve(peerName);

        // Display the data returned by the resolve operation
        Console.WriteLine("Resolve operation complete.\n", peerName);
        Console.WriteLine("Results for PeerName: {0}", peerName);
        Console.WriteLine();

        int count = 1;
        foreach (PeerNameRecord record in results)
        {
            Console.WriteLine("Record #{0} results...", count);

            Console.Write("Comment:");
            if (record.Comment != null)
            {
                Console.Write(record.Comment);
            }
            Console.WriteLine();

            Console.Write("Data:");
            if (record.Data != null)
            {
                // Assumes the data blob associated with the PeerName
                // is made up of ASCII characters
                Console.Write(System.Text.Encoding.ASCII.GetString(record.Data));
            }
            Console.WriteLine();

            Console.WriteLine("Endpoints:");
            foreach (IPEndPoint endpoint in record.EndPointCollection)
            {
                Console.WriteLine("\t Endpoint:{0}", endpoint);
                Console.WriteLine();
            }

            count++;
        }

        Console.ReadKey();
    }
    catch (Exception e)
    {
        Console.WriteLine("Error occurred while attempting to resolve the PeerName: {0}", e.Message);
        Console.WriteLine(e.StackTrace);

        // P2P is not supported on Windows Server 2003
        if (e.InnerException != null)
        {
            Console.WriteLine("Inner Exception is {0}", e.InnerException);
        }
    }
}

Poznámky

Tato metoda přidruží název partnerského vztahu ke cloudům. Všechny cloudy jsou dotazovány na PeerName. Pokud nelze přeložit název partnerského uzlu nebo je null, vyvolá se chyba PeerToPeerException .

U nezabezpečených názvů partnerských uzlů je možné stejný název zaregistrovat (a přidružit k různým koncovým bodům) různými partnerskými vztahy ve stejném cloudu.

PeerNameResolver Volání metody je podobné volání Resolve metody pro každý záznam názvu partnerského uzlu v souboru PeerNameRecordCollection. Všimněte si, že použití metody Resolve u záznamu názvu jednotlivého partnerského uzlu zneplatní překlad více názvů partnerských uzlů.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Cloud Pokud parametr není zadán, metoda použije Available zástupce k vyplnění parametrů cloudu.

Událost ResolveCompleted se vyvolá, pokud se operace řešení dokončí v chybě nebo je zrušena.

Viz také

Platí pro

Resolve(PeerName, Int32)

Vyřeší zadaný název partnerského uzlu ve všech cloudech známých volajícímu partnerskému uzlu a vrátí maximálně zadaný počet PeerNameRecord objektů.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, int maxRecords);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, int maxRecords);
member this.Resolve : System.Net.PeerToPeer.PeerName * int -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, maxRecords As Integer) As PeerNameRecordCollection

Parametry

peerName
PeerName

Řešení PeerName .

maxRecords
Int32

Maximální počet PeerNameRecord objektů, které se mají získat ze všech Cloud objektů pro zadané peerName.

Návraty

Jejíž PeerNameRecordCollection velikost je menší nebo rovna maxRecords položkám. Tato kolekce obsahuje záznamy názvu partnerského uzlu přidružené k PeerName vyřešené kolekci.

Výjimky

Parametr peerName je nastaven na nullhodnotu .

Parametr maxRecords je menší nebo roven nule.

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

Tato metoda přidruží název partnerského vztahu ke cloudům. Na název partnerského vztahu se dotazují všechny cloudy. U nezabezpečených názvů partnerských uzlů může stejný název partnerského vztahu zaregistrovat různí uživatelé ve stejném Cloudnázvu a přidružit k různým koncovým bodům. PeerName Pokud nelze přeložit (například název partnerského vztahu není publikovaný), PeerToPeerException vyvolá se chyba.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Událost ResolveCompleted se vyvolá, pokud se operace řešení dokončí v chybě nebo je zrušena.

Platí pro

Resolve(PeerName, Cloud)

Přeloží zadanou PeerName v zadaném Cloudparametru .

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, System::Net::PeerToPeer::Cloud ^ cloud);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, System.Net.PeerToPeer.Cloud cloud);
member this.Resolve : System.Net.PeerToPeer.PeerName * System.Net.PeerToPeer.Cloud -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, cloud As Cloud) As PeerNameRecordCollection

Parametry

peerName
PeerName

Řešení PeerName .

cloud
Cloud

Název Cloud partnerského vztahu se přeloží.

Návraty

PeerNameRecordCollection obsahující všechny záznamy názvu partnerského vztahu (reprezentované jako PeerNameRecord objekty) přidružené k zadanému názvu partnerského vztahu. Pro nezabezpečené názvy partnerských uzlů může být stejné PeerName zaregistrované různými uživateli ve stejném Clouda přidružené k různým koncovým bodům.

Výjimky

Parametr peerName je nastaven na nullhodnotu .

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

PeerName Pokud nelze přeložit (to znamená, že název partnerského uzlu není publikovaný), PeerToPeerException vyvolá se chyba.

U nezabezpečených názvů partnerských uzlů je možné stejný název zaregistrovat (a přidružit k různým koncovým bodům) různými partnerskými vztahy ve stejném cloudu.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Pokud je Cloudparametr , null použije zástupce PeerNameResolver k vyplnění AvailableName, a Scope.ScopeId

Událost ResolveCompleted se vyvolá, pokud se operace řešení dokončí v chybě nebo je zrušena.

Platí pro

Resolve(PeerName, Cloud, Int32)

Vyřeší zadaný PeerName v zadaném Cloudparametru , který nevrací více než zadaný počet PeerNameRecord objektů.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, System::Net::PeerToPeer::Cloud ^ cloud, int maxRecords);
[System.Security.SecurityCritical]
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, System.Net.PeerToPeer.Cloud cloud, int maxRecords);
[<System.Security.SecurityCritical>]
member this.Resolve : System.Net.PeerToPeer.PeerName * System.Net.PeerToPeer.Cloud * int -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, cloud As Cloud, maxRecords As Integer) As PeerNameRecordCollection

Parametry

peerName
PeerName

Řešení PeerName .

cloud
Cloud

V Cloud němž se má vyřešit peerName.

maxRecords
Int32

Maximální počet objektů záznamu názvu partnerského uzlu, které se mají získat ze zadaného cloudu pro zadaný peerName.

Návraty

Jejíž PeerNameRecordCollection velikost je menší nebo rovna maxRecords položkám. Tato kolekce obsahuje záznamy názvu partnerského uzlu přidružené k PeerName vyřešené kolekci.

Atributy

Výjimky

Parametr peerName je nastaven na nullhodnotu .

Parametr maxRecords je menší nebo roven nule.

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

U nezabezpečených názvů partnerských uzlů je možné stejný název zaregistrovat (a přidružit k různým koncovým bodům) různými partnerskými vztahy ve stejném cloudu. Pokud nelze přeložit název partnerského uzlu, vyvolá se chyba PeerToPeerException .

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Pokud je Cloudparametr , null použije zástupce PeerNameResolver k vyplnění AvailableName, a Scope.ScopeId

Událost ResolveCompleted se vyvolá, pokud se operace řešení dokončí v chybě nebo je zrušena.

Platí pro