C# 移植.NET库以便在UWP应用程序中重用
我正在进行一个项目,在UWP应用程序中重用我的一个旧.NET库。我读了几篇关于这个问题的文章 .NET2.0标准库 我按照那篇文章中的步骤创建了一个新的.NET标准2.0库,将旧的源文件复制到新的 库项目,并安装了缺少的NuGet软件包,并编译了该项目,没有任何错误 下一步是创建一个UWP应用程序并添加库项目作为参考 我的库正在将文件从一种格式转换为另一种格式。因此它使用System.IO和System.Xml.Serialization 名称空间。我知道在UWP和Windows应用商店应用程序中,文件读取和写入的安全设置已更改,并且 导致了一些问题 我正在打开一个这样的文件C# 移植.NET库以便在UWP应用程序中重用,c#,.net,uwp,.net-standard,C#,.net,Uwp,.net Standard,我正在进行一个项目,在UWP应用程序中重用我的一个旧.NET库。我读了几篇关于这个问题的文章 .NET2.0标准库 我按照那篇文章中的步骤创建了一个新的.NET标准2.0库,将旧的源文件复制到新的 库项目,并安装了缺少的NuGet软件包,并编译了该项目,没有任何错误 下一步是创建一个UWP应用程序并添加库项目作为参考 我的库正在将文件从一种格式转换为另一种格式。因此它使用System.IO和System.Xml.Serialization 名称空间。我知道在UWP和Windows应用商店应用程
FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.SuggestedStartLocation = PickerLocationId.Desktop;
fileOpenPicker.FileTypeFilter.Clear();
fileOpenPicker.FileTypeFilter.Add(".txt");
StorageFile file = await fileOpenPicker.PickSingleFileAsync();
// and here I am calling my Library
var doc = ParserFactory.Parse(file.Path);
// and that's what my library is trying to do
....
var myfile = File.OpenRead(filename)
// File.OpenRead throws a Security Exception.
我设计了我的库的接口,这样您就必须传递文件路径,库本身将负责
休息
那么,有人知道避免安全异常的解决方案吗?我真的希望不要重写我的库和/或
使用Windows.Storage命名空间“污染”我的库
提前感谢我的建议是为
ParserFactory.Parse(Stream-Stream)
创建一个重载,并使用存储文件
打开流
:
var file = await fileOpenerPicker.PickSingleFileAsync();
var stream = await file.OpenStreamForReadAsync();
var doc = ParserFactory.Parse(stream);
不确定您的Parse
函数是如何工作的,但希望您所关心的只是Stream
实现,而不是FileStream