类型或命名空间名称 'ISet' 不存在

The type or namespace name 'ISet' does not exist

我正在将 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' 

此问题在其他 2 个网站上没有得到解答:
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

我能做什么?

使用 NHibernate 4,在大多数情况下你 do not need anymore to explicitly depend on Iesi

您应该改为迁移您的实体代码以使用 System.Collections.Generic.ISet<T>

这就是我所做的,甚至在遇到 Iesi 的任何问题之前。 如果您想继续使用 Iesi,可以通过提供您自己的 NHibernate.Bytecode.ICollectionTypeFactoryoptional setting collectiontype.factory_class 来实现。但是我觉得不值得。

Release notes,“** 从 NH3.3.3.GA 到 4.0.0.GA 的已知重大变化”部分:

Many uses of set types from Iesi.Collections have now been changed to use corresponding types from the BCL. The API for these types are slightly different.