可移植类库不支持System.IO,为什么?

2024-01-06

我创建了一个便携式类库用于我的Monodroid项目。 但问题是我需要系统IO库,但不幸的是我无法添加它。

我什至尝试通过“添加引用”选项来添加它,但这是徒劳的。

为什么会发生这样的事? 我该怎么做?


你不能使用System.IO因为它不是一个可移植的类库。System.IO进行特定于其运行的操作系统(Windows)的调用,而可移植类库则被认为是跨平台的。

可以找到您正在寻找的解决方案here http://blogs.msdn.com/b/dsplaisted/archive/2012/08/27/how-to-make-portable-class-libraries-work-for-you.aspx:

当你尝试编写一个可移植库但是 您需要一些不受支持的功能?您不能调用 直接 API,你不能引用这样做的库,因为 可移植库不能引用非可移植库。这 解决方案是在您的可移植库中创建一个抽象 提供您需要的功能并实现该抽象 对于您的便携式库目标的每个平台。例如,如果您 需要保存和加载文本文件,您可能会使用类似的界面 这:

public interface IFileStorage 
{
    Task SaveFileAsync(string filename, string contents);
    Task<String> LoadFileAsync(string filename); 
} 

最好只包含您需要的功能 抽象。在这个例子中,接口没有抽象通用的 文件系统概念,例如流、文件夹或枚举文件。 这使得抽象更加可移植并且更容易实现。这 方法返回任务,以便 Windows 应用商店应用程序的实现 可以调用异步的 WinRT 文件 IO API。

创建抽象允许可移植库调用 不可移植的代码,并且这种模式几乎在任何时候都适用 需要从可移植库访问非可移植功能。的 当然,您需要某种方式让可移植代码获得对 抽象的实现。你如何做到这一点取决于 无论您是在编写跨平台应用程序还是通用应用程序 可重用的库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可移植类库不支持System.IO,为什么? 的相关文章

  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 如何根据屏幕密度(DPI大小)选择资源?

    我正在尝试根据我的颤振应用程序中的显示密度加载图标 如何根据屏幕密度动态加载 hdpi xhdpi xxhdpi 经过几个小时的搜索 根据官方文档 https flutter dev docs development ui assets a
  • 如何解决“错误的解释器:没有这样的文件或目录”

    我正在尝试运行sh脚本并在 Mac 上收到以下错误 usr bin perl M bad interpreter No such file or directory 我怎样才能解决这个问题 Remove M控制字符 perl i pe y
  • 根据 Angular 反应形式中选择的数字推送迭代行

    当我在下拉列表中选择一个数字时 我在迭代行时遇到问题 我将如何推动该数字 以便根据该数字迭代行 卡 我的流程是这样的 首先您必须将 Solo Traveler 选择为 否 以便出现成人和儿童下拉菜单 该下拉列表是我的问题 我将如何根据所选的
  • 使用 dplyr 与数据库中的日期字段进行数据库连接

    有什么魔力可以使用吗dplyr当数据库有日期字段时访问数据库 A dplyr tbl df将 mysql 日期时间字段转换为 chr 如果我能的话那也不错as Date 他们回来了 但如果我之前这样做collect ing 该表 我收到一个
  • Python Socket 接收/发送多线程

    我正在编写一个Python程序 在主线程中 我使用recv函数连续 循环 通过TCP套接字接收数据 在回调函数中 我使用 sendall 函数通过同一套接字发送数据 什么触发回调是无关紧要的 我已将套接字设置为阻塞 我的问题是 这样做安全吗
  • 从 jersey 迁移到 spring-mvc/rest:ContainerRequestFilter、ContainerResponseFilter

    由于业务需求 我需要从 jersey 迁移到 spring mvc rest 我正在 spring mvc 中搜索相当于 jersey 的东西ContainerRequestFilter ContainerResponseFilter 有任
  • 访问 Oracle Forms/OC4J 中的 URL 参数

    如何访问通过 URL 传递到 Oracle 表单的参数 例如给定网址 a form p1 某事 p2 其他 这将使用 cust 配置启动 a form 表单 但我无法了解如何 或者即使可能 访问p1 值为 something p2 值为 e
  • 如何在数据表中添加图像?

    如何在数据表中添加图像 我尝试了以下代码 Image img new Image img ImageUrl images xx png dr dt NewRow dr column imgdw 但它显示文字System Web UI Web
  • Python Rijndael 加密

    我正在尝试模仿 Rijndael AES 加密http www hanewin net encrypt aes aes test htm http www hanewin net encrypt aes aes test htm在Pytho
  • 会话锁定导致 ASP.Net 网站速度缓慢

    我刚刚发现 ASP Net Web 应用程序中的每个请求都会在请求开始时获取会话锁 然后在请求结束时释放它 如果您像我一开始一样不明白这其中的含义 那么这基本上意味着以下内容 任何时候 ASP Net 网页需要很长时间才能加载 可能是由于数
  • Play Framework 2.0.1 DateFormatter 接收系统区域设置

    我在 Play 2 0 Java 中编写了一个自定义 DateFormatter 因为默认的 DateFormatter 似乎是 i18n 不支持的 实现细节与此处无关 public class DateFormatter extends
  • C# 中用于语音认证的互相关和 FFT

    这是与其他问题类似的问题 但不是重复的问题 但是 我仍然无法得到正确的结果 我基本上试图记录两个 Wav 文件 1 基本文件 2 临时文件 然后将其转换为字节并传递给 Aforge FFT 然后传递给相关性 很少有混乱 当我录制文件时 我使
  • 从 TypeScript 声明全局命名空间变量

    如何从打字稿中显式声明全局命名空间中的变量 我需要编译器生成以下 JavaScript 代码 MyExtension someFunction 不幸的是 我只能让它生成 var MyExtension someFunction 这涉及到最新
  • C 中对“main”的未定义引用

    您好 我在使用 gcc 编译 c 代码时遇到以下错误 usr lib gcc x86 64 redhat linux 4 4 6 lib64 crt1 o In function start text 0x20 undefined refe
  • MS SQL 异常:“@P0”附近的语法不正确

    我正在使用 MS SQL 查询数据库 由于某种原因 我收到以下错误 com microsoft sqlserver jdbc SQLServerException Incorrect syntax near P0 即使这个 P0 不在我的语
  • 将数据插入文本文件

    我想在文本文件中的某些位置插入数据 而不实际覆盖现有数据 我有两个文本文件 one txt 文件有 1000 行 two txt 文件有 10000 行 我想读取 one txt 文件内容并插入 two txt 文件内容的前1000行 将
  • 合并 2 个对象数组

    让我们看一个例子 var arr1 new Array name lang value English name age value 18 var arr2 new Array name childs value 5 name lang v
  • vue-template-compiler/package.json 每个新项目都缺少模块

    目前 我从linux切换到windows 开始创建编程环境 我不记得linux上有类似的问题 但重点是 1 安装的 Node js2 npm install g vue cli用于 CLI 安装3 vue create my app 4 n
  • JFileChooser - 多个文件过滤器?

    我对 Swing 中的 JFileChooser 有疑问 我试图在下拉框中获取多个文件扩展名 但不知道该怎么做 有方法 extFilter FileNameExtensionFilter description extensions 然后我
  • 可移植类库不支持System.IO,为什么?

    我创建了一个便携式类库用于我的Monodroid项目 但问题是我需要系统IO库 但不幸的是我无法添加它 我什至尝试通过 添加引用 选项来添加它 但这是徒劳的 为什么会发生这样的事 我该怎么做 你不能使用System IO因为它不是一个可移植