WCF-ügyfél létrehozása szolgáltatás metaadataiból
Ez a témakör azt ismerteti, hogyan hozhat létre ügyfeleket metaadat-dokumentumokból a Svcutil.exe különböző kapcsolóinak használatával.
A metaadat-dokumentumok tartós tárolóban lehetnek, vagy online is lekérhetők. Az online lekérés a WS-MetadataExchange protokollt vagy a Microsoft Discovery (DISCO) protokollt követi. Svcutil.exe a metaadatok lekéréséhez egyidejűleg a következő metaadat-kérelmeket adja ki:
WS-MetadataExchange (MEX) kérés a megadott címre.
MEX-kérés a megadott címre
/mex
hozzáfűzve.DISCO-kérés (a DiscoveryClientProtocol ASP.NET webszolgáltatásokból) a megadott címre.
Svcutil.exe a webszolgáltatások leírási nyelve (WSDL) vagy a szolgáltatástól kapott szabályzatfájl alapján hozza létre az ügyfelet. A felhasználónév (UPN) úgy jön létre, hogy összefűzi a felhasználónevet a "@" karakterrel, majd hozzáad egy teljes tartománynevet (FQDN). Az Active Directoryban regisztrált felhasználók esetében azonban ez a formátum nem érvényes, és az eszköz által létrehozott egyszerű felhasználónév hibát okoz a Kerberos-hitelesítésben a következő hibaüzenettel: A bejelentkezési kísérlet sikertelen volt. A probléma megoldásához manuálisan javítsa ki az eszköz által létrehozott ügyfélfájlt.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
Hivatkozási és megosztási típusok
Lehetőség | Leírás |
---|---|
/reference:<file path> | Hivatkozástípusok a megadott szerelvényben. Ügyfelek létrehozásakor ezzel a beállítással megadhatja azokat a szerelvényeket, amelyek az importált metaadatokat képviselő típusokat tartalmazhatnak. Rövid űrlap: /r |
/excludeType:<type> | A hivatkozott szerződéstípusokból kizárandó teljes vagy szerelvény-minősített típusnevet ad meg. Rövid űrlap: /et |
Szerializáló kiválasztása
Lehetőség | Leírás |
---|---|
/szerializáló:Automatikus | Automatikusan kiválasztja a szerializálót. Ez a szerializálót DataContract használja. Ha ez nem sikerül, a rendszer a függvényt XmlSerializer használja.Rövid űrlap: /ser:Auto |
/szerializáló:DataContractSerializer | Olyan adattípusokat hoz létre, amelyek szerializáláshoz és deszerializáláshoz használják a DataContract szerializálót.Rövid űrlap: /ser:DataContractSerializer |
/szerializáló:XmlSerializer | Szerializáláshoz és deszerializáláshoz használt XmlSerializer adattípusokat hoz létre.Rövid űrlap: /ser:XmlSerializer |
/importXmlTypes | A szerializálót úgy konfigurálja DataContract , hogy a nem típusokatDataContract típusként importálja IXmlSerializable .Rövid űrlap: /ixt |
/dataContractOnly | Csak típusok kódját DataContract hozza létre. ServiceContract típusok jönnek létre.Ehhez a beállításhoz csak helyi metaadatfájlokat kell megadnia. Rövid űrlap: /dconly |
Nyelv kiválasztása az ügyfél számára
Lehetőség | Leírás |
---|---|
/language:<language> | Megadja a kódgeneráláshoz használni kívánt programozási nyelvet. Adja meg a Machine.config fájlban regisztrált nyelvnevet, vagy egy olyan osztály teljes nevét, amelytől CodeDomProvideröröklődik. Értékek: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp Alapértelmezett: csharp Rövid űrlap: /l További információ: CodeDomProvider osztály. |
Névtér kiválasztása az ügyfél számára
Lehetőség | Leírás |
---|---|
/namespace:<sztring,sztring> | WSDL- vagy XML-sémából targetNamespace egy közös nyelvi futtatókörnyezeti (CLR) névtérre való leképezést ad meg. Helyettesítő karakter (*) használata a térképekhez az targetNamespace adott targetNamespaces CLR-névtér explicit leképezése nélkül.Ha meg szeretné győződni arról, hogy az üzenetszerződés neve nem ütközik a művelet nevével, minősítse a típushivatkozást kettős kettőspontokkal ( :: ), vagy győződjön meg arról, hogy a nevek egyediek.Alapértelmezett: A sémadokumentum célnévteréből származik a következőhöz DataContracts : . Az alapértelmezett névtér az összes többi létrehozott típushoz használatos.Rövid űrlap: /n |
Adatkötés kiválasztása
Lehetőség | Leírás |
---|---|
/enableDataBinding | Minden típuson DataContract implementálja az INotifyPropertyChanged interfészt az adatkötés engedélyezéséhez.Rövid űrlap: /edb |
Konfiguráció létrehozása
Lehetőség | Leírás |
---|---|
/config:<configFile> | Megadja a létrehozott konfigurációs fájl fájlnevét. Alapértelmezett: output.config |
/mergeConfig | A létrehozott konfigurációt egy meglévő fájlba egyesíti ahelyett, hogy felülírja a meglévő fájlt. |
/noConfig | Ne hozzon létre konfigurációs fájlokat. |