繁体   English   中英

如何从 Xamarin iOS 绑定项目引用 .NET 标准库?

[英]How to reference a .NET standard library from a Xamarin iOS binding project?

我为 iOS 框架创建了一个 Xamarin iOS 绑定项目。 我想要一些生成的绑定类来实现 .NET Standard 类库中的接口。 这失败了,因为我无法从该库中引用 .NET 标准程序集。 我怎样才能编译这个,或者有另一种(更好的)方法吗?

重现步骤:

  1. https://docs.microsoft.com/en-us/samples/xamarin/ios-samples/bindingsample/下载并解压缩演示项目
  2. 添加.NET 标准类库项目“Api”。
  3. 将文件 IApi.cs 添加到 Api 项目中:
    namespace Api
    {
        public interface IApi
        {
            Result Status { get; }
        }
    }

    public enum Result
    {
        Success,
        Error
    }
  1. 使绑定项目引用 Api 项目。
  2. 转到 Extras.cs 并将此代码添加到 XMUtilities 类:
    partial class XMUtilities : IApi
    {
        public Result Status => string.IsNullOrEmpty(Speak()) ? Result.Error : Result.Success;
  1. 构建项目。 它失败了 2 个错误说

“错误 CS0012:类型 'Enum' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。(CS0012) (XMBindingLibrary) ”

我找不到添加该引用的方法。 特别是, https: //stackoverflow.com/a/42497735/1004651 中的提示对我不起作用,我不确定是否是同样的问题。

背景:我有一个适用于 Android 和 iOS 版本的 3rd 方库。 我想将这两个隐藏在一个通用 API 之后,并创建多个基于该 API 构建的 Xamarin Forms 项目。 上面概述的方法适用于 Android 绑定项目,但现在我正在与 iOS 对应项目苦苦挣扎。

不幸的是,它不能那样工作。

您不能在绑定项目中向您的本机库“添加”功能,也不能引用其他库:您必须将其视为包装器。

也就是说,您可以创建另一个 Xamarin 本机项目(或网络标准),该项目将引用您的绑定项目和包含您的接口的网络标准库。 在这个项目中,您将能够子类化并添加所需的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM