Wir haben ein schwerwiegendes Problem mit einem benutzerdefinierten generischen Typ, der Ausnahmen bezüglich der Serialisierung auslöst. Hier ist ein Beispiel-Klasse:Hinzufügen von Laufzeitanweisungen für generische Typen in der UWP-App
internal class Foo<T> : IFoo<T>
{
public void Bar(T tralalala)
{
//do whatever
}
}
Nun, wir mit dem Prism-Framework und seine eingebaute in SessionStateService die App Zustand zu speichern, wenn es heruntergefahren oder ausgesetzt wird. Das Problem ist, wenn Prism versucht, den App-Status nach dem erneuten Start zu bringen, wird eine Ausnahme ausgelöst:
System.Runtime.Serialization.InvalidDataContractException
SerializationCodeIsMissingForType, Utilities.Foo.Foo`1[T]
Ich bin mir sehr wohl bewusst, dass für den Serializer/Deserializer, um die .NET native Compiler zu arbeiten, benötigt zusätzliche Metadaten für den Typ, wie in den rd.xml-Dateien angegeben. Das Problem ist, ich habe keine Ideen, wie man diesen Typ markiert. Ich dachte, einen allgemeiner Tag für die ganze Namespace funktionieren würde:
<Namespace Name="Utilities.Foo" Dynamic="Required All" DataContractSerializer="Required All" />
Aber das ist nicht der Fall, und ich kann wirklich keine Beispiele finden, wie man richtig einen generischen Typen zu markieren. Da dieses Serialisierungs-/Deserialisierungsproblem es unmöglich macht, den WACK-Test zu bestehen, müssen wir das Problem wirklich lösen. Hilf mir, Stack Overflow, du bist meine einzige Hoffnung.
Ich habe einige Leute aus dem .NET-Serialisierungsteam gepingt. Ich bin mir sicher, wir können dich ins Quadrat bringen. Für solche Dinge können Sie uns jederzeit unter [email protected] kontaktieren. Freue mich zu helfen! –
Tritt das Problem auf, wenn Sie Ihre App mit oder ohne .NET Native Toolchain kompilieren? –