System.Data.Entity.Design.PluralizationServices 在单声道中出错
本文关键字:声道 出错 单声道 Entity Data Design PluralizationServices System | 更新日期: 2023-09-27 18:32:23
我有一个成熟的C#应用程序,它一直在Windows上运行,它正在移植到Linux(在Mono上),我遇到了一个错误,我无法解决 System.Data.Entity.Design 中的PluralizationServices。
导致问题的代码行如下所示:
PluralizationService pluralizationService = PluralizationService.CreateService(System.Globalization.CultureInfo.InvariantCulture);
尽管这从未在 Microsoft.NET 下运行的Windows应用程序上引起任何问题,但是当程序在Mono下运行时,我会收到以下错误:
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
我在这里发现其他人似乎遇到了类似的问题,他们只是将 .dll 的 .NET 版本复制到他们的 Mono 项目中,它为他们解决了这个问题。我尝试了相同的方法,但是随后遇到了以下错误:
Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for MudSharp.Framework.LanguageHelpers ---> System.InvalidProgramException: Invalid IL code in System.Data.Entity.Design.PluralizationServices.PluralizationService:CreateService (System.Globalization.CultureInfo): method body is empty.
我在 Ubuntu 上使用 Mono 3.10。我找不到任何关于 Mono 不支持这些功能的建议,我只是不确定如何继续调试此问题。
任何帮助将不胜感激。
看起来更高版本的 Mono 确实支持复数服务 - 请参阅函数支持状态。
但是,多元化服务目前仅支持英语。
你试过这个吗:
PluralizationService pluralizationService = PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-us"));`
仅供参考,看起来很容易使用EntityModelSchemaGenerator类扩展到其他语言。
-
Plurally 是实体框架多元化服务的单声道兼容替代品。
-
使用多个测试库源代码 jsonclassgenerator
- IDE: Xamarin Studio 6.1.3
- 框架: 单声道/.NET 4.5
- 添加NuGet包:Newtonsoft.Json,复数
-
Json类生成器.cs第 10,39 行
-
使用复数.复数器
using Plurally; private Pluralizer pluralizationService = new Pluralizer(new CultureInfo("en-us"));
-
JsonType.csline 8
using Plurally;
-
Xamasoft.JsonClassGenerator.JsonClassGenerator GenerateClasses Result
{ "UserAccount": "", "UserPassword": "", "ExtraInfo": "" }
// Generated by Xamasoft JSON Class Generator // http://www.xamasoft.com/json-class-generator using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; namespace CommonModels { public class loginArgs { public string UserAccount { get; set; } public string UserPassword { get; set; } public string ExtraInfo { get; set; } } }