Fehler/Warnungen svcutil.exe zum erstellen von proxy-Klassen für mehrere WCF-Dienste

Ich Schreibe ein .NET 3.5-app und die Kontrolle sowohl über den WCF-Dienst und-client.

Ich bin mit svcutil zum generieren von proxy Klassen für meine Dienste, die Kombination mehrerer Dienste, da Sie teilen Datentypen.

svcutil /out:ServiceReference.cs /noconfig /namespace:*,Global.ServiceReference 
 /tcv:Version35 http://localhost:12345/first.svc http://localhost:12345/second.svc

Die mehr ernstes problem ist die Fehler-ich habe ein Klasse erstellt wird zweimal, was viele der "Mehrdeutigkeit zwischen 'Global'.ServiceReference.MyClass.MyField' und 'Global'.ServiceReference.MyClass.MyField' " Fehler. Beachten Sie, dass gerade jetzt, in dieser Klasse ist nur auf die in EINEM der Dienste, aber in der Zukunft wird es sein, einen Verweis von mehr.

Den beiden generierten Klasse Aussehen:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyClass", Namespace="http://schemas.datacontract.org/2004/07/MyService.Util")]
public partial class MyClass : object, System.Runtime.Serialization.IExtensibleDataObject
{ 
  //fields
}

und

[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "3.0.4506.2152")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/MyService.Util")]
public partial class MyClass
{
  //same fields
}

Basierend auf den Parametern angewendet, das hat etwas zu tun mit dem DataContractSerializer gegen den XmlSerializer, aber ich weiß nicht wirklich verstehen, was diese bedeuten.

Zweite problem ist, dass svcutil gibt eine ganze Bootsladung von Warnungen der form:

Error: There was a validation error on a schema generated during export:
    Source:
    Line: 1 Column: 10415
   Validation Error: The simpleType 'http://schemas.microsoft.com/2003/10/Serialization/:guid' has already been declared.

Diese Fehler passieren, auch mit zwei sehr einfache Dienstleistungen. Zum Beispiel, wenn der service #1 hat

[OperationContract]
public string test(int test)
{
    return "test";
}

- und service #2 hat

[OperationContract]
public int Ping(string test)
{
    return 23;
}

...Ich bekomme die Warnungen. Es ist wie ein 100 von Ihnen, alle beschweren sich über verschiedene globalElements, globalAttributes, oder simpleTypes wie guid, Dauer, char, etc.

Wenn ich einen der Dienste zu haben ist nur noch leere Parameter - /Rückgabewert-Typ, ich habe nicht die Warnungen. Das ist wirklich verwirrend, da dies der einfachste test. Ohne benutzerdefinierte Typen überhaupt, svcutil ist barfing. Keine Ahnung, was hier Los ist?

InformationsquelleAutor Clyde | 2009-11-17
Schreibe einen Kommentar