PeerNameResolver.Resolve Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) | |
| 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
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
- 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)
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
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
- 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.