0
我有一個基於WSE 3.0的Web服務和一個WinForms客戶端應用程序,該應用程序使用在該服務的References.cs中定義的類型,但是它們提供了一些其他功能,以提供客戶。WSE 3.0 Web服務未知的派生類型
然而,當我通過子類的實例返回給Web服務,即使我明確地轉換回原來的類型,我得到了可怕的:
使用XmlInclude或SoapInclude屬性來指定類型這些不是靜態的。
引用我的派生類型。
代碼摘要:
public class DefinedInReferenceCs
{
// ...
}
public class ClientSubclass : DefinedInReferenceCs
{
// My extra stuff
}
public class MyClient
{
public CallTheWebService(ClientSubclass obj)
{
// obj is an instance of ClientSubclass, cast as DefinedInReferenceCs
svc.MyMethod((DefinedInReferenceCs)obj);
// Throws an exception complaining that ClientSubclass is not statically known
}
}
我可以明確地創建一個DefinedInReferenceCs實例,並進行相關領域的深層副本解決這個問題。有沒有更好的辦法?
需要指定XmlInclude的位置嗎?這是使用部分類的好主意。實例化客戶端時,服務器未知的字段將僅使用默認值進行初始化? – 2010-01-15 16:30:55