5

In C++ können Sie mit boost :: interprocess einen boost :: interprocess :: basic_string definieren, der im Grunde genommen eine Abstraktion über einen String ist, der in einer Memory Mapped File gespeichert ist. Sie können es nahtlos wie jede andere Zeichenfolge in Ihrer Anwendung verwenden (vorausgesetzt natürlich, dass Sie auf die Thread-Sicherheit achten).Gibt es ein C# -Äquivalent zu boost :: interprocess :: basic_string?

Gibt es eine entsprechende Bibliothek/nugget-Paket/Code für C#?

+0

Es gibt nichts in dieser Boost-Klasse, die es besonders geeignet für ein MMF macht. Zeichenketten in C++ sind nur ein Albtraum, jede nicht-triviale Bibliothek ist gezwungen, ihre eigenen hinzuzufügen, weil sie sich nicht auf die Implementierungsdetails eines anderen verlassen kann. Wiederholen Sie diesen Fehler nicht, verwenden Sie Encoding.GetBytes(). –

+0

@HansPassant Aber ich kann einen boost :: interprocess :: allocator verwenden, der diese Zeichenfolge in MMF zuweist, und kann diese Zeichenfolgen sogar in einer Datenstruktur platzieren, die in MMF wie boost :: interprocess :: map oder boost gespeichert ist: : Interprozess :: Vektor. Ich suche nach einer ähnlichen Abstraktion in C#, einer Abstraktion, die sich mit Streams auseinandersetzt. –

Antwort

1

Nein. Jedoch, auch wenn es möglich wäre, transparent zu implementieren, sind Strings in C# unveränderlich. Daher halte ich es nicht für sehr nützlich, eine solche Bibliothek zu haben.

Verwandte Themen