2016-09-25 5 views
2

Ich brauche dringend BinaryFormatter, um meine Anwendung mit .NET Framework 4.5 kompatibel zu machen.Zugriff auf BinaryFormatter von .NETStandard, Version = v1.7

Ich weiß, es war unmöglich, es in früheren Versionen von NET Core zu haben. Allerdings sehe ich BinaryFormatter ist geplant für Version 1.7, die derzeit in der Vorschau-Version ist.

BinaryFormatter ist Teil von System.Runtime.Serialization.Formatters Paket/Namespace.

https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.csproj#L57

Wie kann ich installieren Nightly Build dieses Pakets meinen Code funktioniert?

+3

'BinaryFormatter' ist sehr wählerisch über Assembly Versionierung Ich würde nicht empfehlen, Sie verwenden es für jede Form von Cross Machine IPC oder persisted Storage. Sie werden Ihre sicheren Kopfschmerzen in Zukunft speichern, wenn Sie eine andere Serialisierungsmethode verwenden können. –

+0

In meinem Fall sind serialisierte Objekte Cache-Einträge und werden nicht zwischen verschiedenen Laufzeiten geteilt. Sie können auch leicht neu erstellt werden. Ich kann keine andere Serialisierungsmethode verwenden, da es sich um eine API von Drittanbietern handelt, die ich serialisiere. – stil

+0

Caches und Intra-Machine-IPC ist ein guter Anwendungsfall für BinaryFormatter. Ich wollte dir nur einen Hinweis geben, wenn du es nicht wusstest und keinen dieser Fälle benutzt. –

Antwort

1

Ich glaube nicht, dass Sie jede Nacht installieren würden. Wenn diese Funktionalität ist in .NET Core-Framework nicht, aber Sie wollen immer noch Ihre Anwendung .NET Framework 4.5 Namespaces zu verwenden, können Sie Compiler-Direktive

#if net45 
System.Runtime.Serialization.Formatters.Binary; 
public class BinaryFormatSerializer : ISerializer 
{ 
    public string Serialize(object obj) 
    { 
     var serializer = new BinaryFormatter(); 
     string binData = serializer.Serialize(obj); 

     return new BinaryFormatter(binData).Format(); 
    } 
} 
#else // Below you would put whatever logic 
     // to not use 4.5 framework whenever 
     // BinaryFormatter is added to core 

Wenn Sie nur Ihre .NET-Core-App auf möchten verwenden laufen .NET Framework können Sie dies tun, indem Sie den Moniker im Abschnitt "framworks" Ihrer JSON-Konfigurationsdatei hinzufügen/ändern.

Verwandte Themen