Hallo.
Ich möchte in mein Programm einen Webservice-Dienstverweis hinzufügen. VS2008 generiert aus der wsdl eine Proxy Klasse. Normalerweise (mit anderen Dienstverweisen) steht im Code der Proxy-Klasse so was
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3082")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="...")]
public partial class Bla: object, System.ComponentModel.INotifyPropertyChanged {
}
Aus diesem Verweis werden aber alle Klassen doppelt generiert, und zwar so:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="DisposalData", Namespace="...")]
[System.SerializableAttribute()]
public partial class DisposalData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3082")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="...")]
public partial class DisposalData : object, System.ComponentModel.INotifyPropertyChanged {
}
Testen mit SoapUI klappt problemlos, wsdl sollte also korrekt sein. Was kann die Ursache für solches Verhalten sein?
Bei mir sind VS2008 un 2005 installiert.
Hallo,
schau doch mal in die vom Dienst gelieferte WSDL rein. Da müsste irgendwo der Hund begraben liegen.
Gruß, MarsStein
EDIT: hab gerade gesehen dass beide Klassen partial sind. Dann ist die doppelte Deklaration ja ok. Gibt es denn Probleme?
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hi,
Problem besteht darin, dass die Proxy-Klasse nicht verwendbar ist, da in DisposalData die Felder mehrfach definiert sind.