有人可以帮我理解以下内容:
在以前的 NHibernate 版本(2.0.1)中,以下属性将验证并与 Castle 代理兼容:
internal virtual BusinessObject Parent
{
get { /*code*/ }
}
但是,在 2.1 中错误地说类型应该是“公共/受保护的虚拟”或“受保护的内部虚拟”。我对此有疑问,因为使用“受保护的内部”标记属性会将属性暴露给其他程序集中的继承类型(有效保护或内部)。鉴于以前从来没有要求过,现在强加起来感觉有点糟糕。
有人可以解释为什么现在有这个要求以及它试图强制执行什么,这样我至少可以理解它打算实现什么。
如果不完全需要此限制,并且我 100% 确定这些类型的属性将永远不会映射到数据库属性,我打算使用 Castle 代理工厂和 2.0.1 中的类型验证器创建自己的 Mashup ByteCode 提供程序。但是,我绝对愿意接受任何建议。