私は基本的に、.NET 4.0 で、インスタンスをシリアル化せずにプログラム/プロセス間でインスタンスを渡す方法を探しています。
はい、古き良き 100% 安全でないポインターがありません ;)
.NET 4.0 へのメモリ マップト ファイルの新しい統合は、それを使用して「ネイティブに」参照/ポインターを渡すことができる場所を読んで、私を助けると思いました。
しかし、次のようなことをしようとすると
var mmf = MemoryMappedFile.CreateFromFile(@"C:\temp\test.mp", FileMode.Create, "mmf",
1024*1024*300,
MemoryMappedFileAccess.ReadWrite);
var ss = new SimpleStruct();
ss.items = _items; //Collection of Items objects
var FileMapView = mmf.CreateViewAccessor();
FileMapView.Write<SimpleStruct>(0, ref ss); //Exception
次の ArgumentException が発生します。
The specified Type must be a struct containing no references.
MMF を使用して参照を渡すことは可能ですか? そうでない場合、プログラム/プロセスにインスタンスを渡す方法はありますか?