【问题标题】:Class Library for Xamarin and Core 2.2Xamarin 和 Core 2.2 的类库
【发布时间】:2019-01-07 17:33:39
【问题描述】:

我有一个 API 类库和一个针对核心 2.2 框架的 Web 项目。它出于多种原因使用数据注释。其中之一是我使用 EF 并且需要 InverseProperty 标记。

我现在想在我的项目中添加一个移动 xamarin 应用程序并让它使用相同的类库,以便它可以使用相同的模型。

但是除非我将 traget 更改为标准而不是核心,否则引用将不起作用。

但是,一旦我这样做了,注释就不再起作用了。

我在这里遇到了一个奇怪的问题。 我可以为简单地复制代码的移动应用程序创建一个新的类库。但是这种代码重复肯定会咬我一口。

  1. 有什么方法可以让我的类库针对两个框架?

  2. 是否有办法将注释删除到单独的类中?并继承原版?但无论如何,这仍然需要编写两次代码。

任何关于如何理解这一点的建议都会被采纳。

【问题讨论】:

    标签: c# class .net-core .net-standard


    【解决方案1】:

    您可能有两个具有不同目标的库,它们有一个共同的共享项目,您可以在其中根据需要重构代码并避免重复。这听起来像是您的问题的可能解决方案,也许还有其他解决方案,但这个应该没问题。

    【讨论】:

      【解决方案2】:

      您可以尝试编辑您的 .net 项目文件并添加

      System.ComponentModel.Annotations 用于 .net 标准

      System.ComponentModel.DataAnnotations 用于 xamarin 和 .net

      这是您的csproj 的代码:

        <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
          <PackageReference Include="System.ComponentModel.Annotations" Version="4.4.1" />
        </ItemGroup>
       <ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
         <Reference Include="System.ComponentModel.DataAnnotations" />
       </ItemGroup>
      

      【讨论】:

        猜你喜欢
        • 2020-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-09
        • 1970-01-01
        • 1970-01-01
        • 2019-05-13
        相关资源
        最近更新 更多