我们遇到了一个自定义泛型类型抛出与序列化相关的异常的严重问题。下面是一个例子类:在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工具链编译应用程序时,问题是否会发生? –