我們遇到了一個自定義泛型類型拋出與序列化相關的異常的嚴重問題。下面是一個例子類:在UWP應用程序中添加泛型類型的運行時指令
internal class Foo<T> : IFoo<T>
{
public void Bar(T tralalala)
{
//do whatever
}
}
現在,我們使用Prism框架,其內置SessionStateService保存應用程序狀態,當它被關閉或暫停。問題是,當棱鏡嘗試重新推出後帶回的應用程序狀態,拋出一個異常:
System.Runtime.Serialization.InvalidDataContractException
SerializationCodeIsMissingForType, Utilities.Foo.Foo`1[T]
我清楚地意識到,爲了使串行器/解串器工作時,.NET本地編譯器需要爲該類型提供額外的元數據,如rd.xml文件中所標記的。問題是,我不知道如何標記該類型。我想整個命名空間的通用標籤將工作:
<Namespace Name="Utilities.Foo" Dynamic="Required All" DataContractSerializer="Required All" />
但是,這不是這種情況,我真的不能找到如何正確地標記一個泛型類型的任何實例。由於該序列化/反序列化問題使WACK測試無法通過,所以我們真的需要解決這個問題。 幫助我,堆棧溢出,你是我唯一的希望。
我已經從.NET序列化程序團隊ping了一些人。我相信我們可以讓你擺平。對於這樣的事情,你總是可以通過[email protected]向我們發送郵件。樂於幫助! –
當您使用或不使用.NET Native工具鏈編譯應用程序時,問題是否會發生? –