0

我在生产机器上运行我的 Liquid-XML 项目时遇到问题。液体 xml 许可证是可以的。我用 Liquid xml studio 重新创建了类库,但在错误前面没有任何变化。

cmd 行给了我这些信息:

Ausnahmefehler: System.TypeInitializationException: Der Typeninitialisierer für "myLib.Registration" hat eine Ausnahme verursacht。---> System.ArgumentException: Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt。bei System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) bei myLib.Registration.RegisterLicense() in [PATH]\coding\my.xsd.Output\SourceCodeVBNet\Enumerations.vb:Zeile 53.

第 53 行是许可证注册代码:

LiquidTechnologies.Runtime.Net45.XmlObjectBase.Register("company xyz", "my.xsd","somecharshere")

有任何想法吗?

4

1 回答 1

1

翻译错误:

异常错误:System.TypeInitializationException:“myLib.Registration”的类型初始化程序导致异常。---> System.ArgumentException:已添加具有相同键的元素。在 System.Collections.Generic.Dictionary`2.Insert (TKey key, TValue value, Boolean add) at myLib.Registration.RegisterLicense() in [PATH]\coding\my.xsd.Output\SourceCodeVBNet\Enumerations.vb: Line 53.

此问题是由添加到默认命名空间别名字典中的多个项目引起的,例如以下将导致此异常,因为前缀“abc”被添加了两次:

LiquidTechnologies.Runtime.Net45.XmlSerializationContext.Default.NamespaceAliases.Add("abc", "http://myurl");
LiquidTechnologies.Runtime.Net45.XmlSerializationContext.Default.NamespaceAliases.Add("abc", "http://myotherurl");

通常,当从您的客户端项目中引用两个或多个 Liquid XML Data Binder 生成的库时,就会出现此问题。Default 上下文是静态的,因此将相同的键添加到 XmlSerializationContext.Default.NamespaceAliases 将引发异常,即使它们添加到不同的库中也是如此。

以下知识库文章对此进行了介绍:

http://support.liquid-technologies.com/kb/a110/how-do-i-use-multiple-_net-generated-libraries-from-a-single-client.aspx

于 2017-01-24T13:50:28.907 回答