1
我遇到了序列化問題。我的Silverlight應用程序不會期望我的某個商業對象中的某個屬性,也不知道該如何處理它。以前我已經通過設置一個KnownTypeAttribute來解決這個問題,就像下面的例子一樣,但是在這種情況下它不起作用。序列化不接受我的KnownTypeAttribute,爲什麼?
我已經習慣瞭解決這個問題是這樣的:
[DataContract(Name = "baseClass")]
public class baseClass { }
[DataContract(Name = "busObj1")]
public class busObj1 : baseClass { }
[DataContract(Name = "busObj2")]
[KnownType(typeof(busObj1))]
public class busObj2 : baseClass
{
public busObj1 myObj { get; set; }
}
唯一的區別知道的是,我有稍微不同的結構,像這樣:
[DataContract(Name = "baseClass")]
public class baseClass { }
[DataContract(Name = "busObj1")]
public class busObj1 : baseClass { }
[DataContract(Name = "busObj2")]
[KnownType(typeof(busObj1))]
public class busObj2 : baseClass
{
public busObj1 myObj { get; set; }
}
// This is the class that I want to send via WCF and that cannot be serialized
// because the serializer doesn't expect busObj1.
[DataContract(Name = "busObj3")]
public class busObj3 : busObj2 { }
我的任何想法非常感謝什麼可能是錯的!
問候,柯樂
我以前並不需要它。爲什麼在這種情況下? – Clas
我不知道爲什麼你以前不需要它。您尚未顯示您的服務合約的外觀以及客戶可見的類型。 –
您的解決方案爲我做了竅門,儘管對於某些解決方案有時甚至有時不工作仍然很神祕。不管怎麼說,還是要謝謝你! – Clas