如果您使用標準的wsdl.exe工具來創建您的代理和支持類,那麼我相信它會生成部分類的代碼。如果這是您的情況,那麼您可以將您自己的隱式轉換運算符插入其中一種類型。舉例來說,假設你已經在文件中定義了MyService.foo一流「爲MyService \ foo.cs」如下:
namespace MyService
{
public partial class foo
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
// ...
}
}
而且你必須在文件「MyFramework \ foo的定義您的MyFramework.foo類。 CS」,如下:
namespace MyFramework
{
public class foo
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
// ...
}
}
然後您可以創建一個單獨的文件,讓我們說‘爲MyService \ foo.conversion.cs’如下:
namespace MyService
{
partial class foo
{
public static implicit operator MyFramework.foo(foo input)
{
return new MyFramework.foo
{
PropertyA = input.PropertyA,
PropertyB = input.PropertyB,
PropertyC = input.PropertyC,
// ...
};
}
}
}
這將允許你寫的最你的代碼使用MyService.foo對象就好像它是一個MyFramework.foo對象。下面的代碼與上面的設置編譯:
MyService.foo x = new MyService.foo();
MyFramework.foo y = x;
如果他們足夠相似,那麼是不是放棄從XSD文件生成的類,只是使用Web服務代理的類,而不是一個可能性? – 2010-06-02 18:56:48