我很努力地使用ContractNamespace
爲我的C#枚舉生成正確的WSDL名稱空間,而不是使用屬性裝飾每個類型。在WCF中對名稱空間枚舉使用ContractNamespace
下面的代碼正確地生成「http://www.mynamespace.co.za/」的Person
類型,但由於某種原因Gender
是在不同的WSDL的命名空間,「http://schemas.datacontract.org/2004/07/SomeOtherNamespace」。
我錯過了什麼?枚舉是否需要特殊處理?
[assembly: ContractNamespace("http://www.mynamespace.co.za/", ClrNamespace = "SomeOtherNamespace")]
namespace SomeOtherNamespace
{
public class Person
{
public int Age { get; set; }
public Gender Gender { get; set; }
}
public enum Gender
{
Male,
Female,
Other
}
}
在我的實際代碼中,類型生活在一個外部生成的程序集中。這些類型不容易用自定義屬性進行修飾。 ContractNamespace
將是完美的,如果它可以爲枚舉工作...
換句話說,下面的工作,但將是非常痛苦的進入代碼生成過程。
[DataContract(Namespace = "http://www.mynamespace.co.za/")]
public enum Gender
{
[EnumMember]
Male,
[EnumMember]
Female,
[EnumMember]
Other
}
謝謝,我會努力IWsdlExportExtension – carlmon 2014-09-10 17:32:27