首页 > 解决方案 > 来自 nugets 的跨平台项目和数据类

问题描述

我们正在为 Android 和 iOS 构建 nugets,它们都只生成一个包含数据的类。

public struct ResultData
{
    public double dScore;
    public string strPhrase;
    public Info[] details;
}

Android 和 iOS nuget 都会生成此数据。

我的问题是如何在平台无关代码中声明这个数据结构/类,以便我可以以独立于平台的方式从调用方法中正确捕获它?

这可能吗 ?


编辑:额外信息

如标题所述,我是在一个跨平台项目的背景下,即移动项目。所以我们有三层——平台中立层、Android 层和 iOS 层。

每个特定于平台的层(Android 和 iOS)都导入一个特定于平台的本机库 nuget。

这两个库 nuget 都将生成供ResultData平台中性层使用的对象。

希望这会有所帮助。


编辑#2

尝试了建议的解决方案,即创建一个单独的库来保存此数据结构的定义。

但是,编译会系统性地失败,并出现以下错误

Class.cs(118,16,118,32): error CS0012: The type 'ValueType' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

所以我不能走那条路!

标签: c#xamarinnugetcross-platform

解决方案


我所有调查的结果 - 使用 xamarin 和 VS2019 的实际版本绝对不可能做到这一点。

随后我不得不放弃这种方法并使用不同的策略将信息传递到不同的层——一个 JSON 字符串,然后可以将其转换为顶层所需的数据结构/类。

感谢所有试图在这里提供帮助的人。


推荐阅读