类型或命名空间名称“ISet”不存在。

3

我将升级一个Windows Smart Client解决方案,从nHibernate 2.2升级到4.0。这需要更新Iesi.Collections(4.0.1.4000)。

在这一行中:

protected Iesi.Collections.Generic.ISet<PermitEvent> eventSet;

我收到了这个错误消息:

The type or namespace name 'ISet' does not exist in the namespace 'Iesi.Collections.Generic' 

这个问题在其他两个网站上都没有得到解答:
http://www.c-sharpcorner.com/forums/the-type-or-namespace-name-iset-could-not-be-found http://www.resolvinghere.com/cc/the-type-or-namespace-name-iset-could-not-be-found.shtml

我该怎么办?


这有帮助吗?(https://dev59.com/nX7aa4cB1Zd3GeqPwvHr) - Sriram Sakthivel
过去由于这些问题,我使用IEnumerable和IList而不是Iesi.Collections中的任何东西。我知道这涉及到代码更改(可能需要很多代码更改),但在这里这可能是一个选项吗? - Aron Boyette
1个回答

4

使用 NHibernate 4,在大多数情况下,您 不再需要显式依赖于 Iesi

相反,您应该将实体代码迁移到使用 System.Collections.Generic.ISet<T>

这就是我所做的,即使在遇到任何与 Iesi 相关的问题之前。 如果您想继续使用 Iesi,您可以通过提供自己的 NHibernate.Bytecode.ICollectionTypeFactory可选设置 collectiontype.factory_class 来实现。但我认为这并不值得麻烦。

发布说明,第 "** NH3.3.3.GA 到 4.0.0.GA 已知的重大更改" 部分:

许多使用 Iesi.Collections 的集合类型现已更改为使用来自 BCL 的相应类型。 这些类型的 API 稍有不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接