如何从 Xamarin iOS 绑定项目引用 .NET 标准库?
How to reference a .NET standard library from a Xamarin iOS binding project?
我已经为 iOS 框架创建了一个 Xamarin iOS 绑定项目。我想要一些生成的绑定 classes 来实现来自 .NET Standard class 库的接口。这失败了,因为我无法从该库中引用 .NET 标准程序集。我怎样才能编译,或者有其他(更好的)方法吗?
重现步骤:
- 从 https://docs.microsoft.com/en-us/samples/xamarin/ios-samples/bindingsample/
下载并解压演示项目
- 添加 .NET 标准 class 库项目 "Api"。
- 将文件 IApi.cs 添加到 Api 项目:
namespace Api
{
public interface IApi
{
Result Status { get; }
}
}
public enum Result
{
Success,
Error
}
- 使绑定项目引用 Api 项目。
- 转到 Extras.cs 并将此代码添加到 XMUtilities class:
partial class XMUtilities : IApi
{
public Result Status => string.IsNullOrEmpty(Speak()) ? Result.Error : Result.Success;
- 构建项目。它失败并显示 2 个错误
"Error CS0012: The type 'Enum' is defined in an assembly that is not
referenced. You must add a reference to assembly 'netstandard,
Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
(CS0012) (XMBindingLibrary)"
我找不到添加该引用的方法。特别是中的提示对我不起作用,我不确定是否是同一个问题。
背景:
我有一个带有 Android 和 iOS 版本的第三方库。我想将这两个隐藏在一个共同的 API 后面,并创建多个基于该 API 构建的 Xamarin Forms 项目。上面概述的方法适用于 Android 绑定项目,但现在我正在努力应对 iOS 对应项目。
不幸的是,它不是那样工作的。
您不能 'add' 绑定项目中的本机库的功能,也不能引用其他库:您必须将其视为包装器。
也就是说,您可以创建另一个 Xamarin 本机项目(或网络标准),该项目将引用您的绑定项目和包含您的界面的网络标准库。在此项目中,您将能够子类化并添加所需的行为。
我已经为 iOS 框架创建了一个 Xamarin iOS 绑定项目。我想要一些生成的绑定 classes 来实现来自 .NET Standard class 库的接口。这失败了,因为我无法从该库中引用 .NET 标准程序集。我怎样才能编译,或者有其他(更好的)方法吗?
重现步骤:
- 从 https://docs.microsoft.com/en-us/samples/xamarin/ios-samples/bindingsample/ 下载并解压演示项目
- 添加 .NET 标准 class 库项目 "Api"。
- 将文件 IApi.cs 添加到 Api 项目:
namespace Api
{
public interface IApi
{
Result Status { get; }
}
}
public enum Result
{
Success,
Error
}
- 使绑定项目引用 Api 项目。
- 转到 Extras.cs 并将此代码添加到 XMUtilities class:
partial class XMUtilities : IApi
{
public Result Status => string.IsNullOrEmpty(Speak()) ? Result.Error : Result.Success;
- 构建项目。它失败并显示 2 个错误
"Error CS0012: The type 'Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. (CS0012) (XMBindingLibrary)"
我找不到添加该引用的方法。特别是中的提示对我不起作用,我不确定是否是同一个问题。
背景: 我有一个带有 Android 和 iOS 版本的第三方库。我想将这两个隐藏在一个共同的 API 后面,并创建多个基于该 API 构建的 Xamarin Forms 项目。上面概述的方法适用于 Android 绑定项目,但现在我正在努力应对 iOS 对应项目。
不幸的是,它不是那样工作的。
您不能 'add' 绑定项目中的本机库的功能,也不能引用其他库:您必须将其视为包装器。
也就是说,您可以创建另一个 Xamarin 本机项目(或网络标准),该项目将引用您的绑定项目和包含您的界面的网络标准库。在此项目中,您将能够子类化并添加所需的行为。