我想将Xamarin用作Crossplattform UWP和MacOs应用程序。我有一个现有的后端服务。
我需要的一个主要功能是memorymappedfile! (用于进程间通信)
所以我尝试在Xamarin Projekt中创建一个 - 但.net服务无法找到memorymappedfile。
之后我尝试在.net服务中创建MemorymappedFile:
var CustomSecurity = new MemoryMappedFileSecurity();
CustomSecurity.AddAccessRule(new System.Security.AccessControl.AccessRule<MemoryMappedFileRights>("Everyone", MemoryMappedFileRights.FullControl, System.Security.AccessControl.AccessControlType.Allow));
using (var memoryMappedFile = MemoryMappedFile.CreateNew("test", 102400,MemoryMappedFileAccess.ReadWriteExecute,MemoryMappedFileOptions.None, CustomSecurity,System.IO.HandleInheritability.None))
{
var accessor = memoryMappedFile.CreateViewAccessor();
accessor.Write(0, 42);}
现在Xamarin可以找到MemoryMappedFile,但是当我遇到UnauthorizedAccessException:
var memoryMappedFile = MemoryMappedFile.OpenExisting("test");
var accessor = memoryMappedFile3.CreateViewAccessor();
但是另一个没有Xamarin.Forms项目(wpf projekt)可以使用相同的代码访问这个memorymapped文件!
我希望有人可以帮助我或告诉我如何将MemoryMappedFile与Xamarin一起使用。
我的Xamarin App使用带有.net Standard 1.4的Xamarin.Forms并安装了NuggetPackage:System.IO.MemoryMappedFile以获取对MemoryMappedFile基础的访问(没有MemoryMappedFileSecurity())
非常感谢。