3

http://msdn.microsoft.com/en-us/library/dd468057.aspx我读到我想要更改跟踪代理的所有导航属性都必须是publicvirtual. 据我了解,CLR 动态创建我的 POCO 的子类,并重新实现属性以提供请求的行为。

为此,我理解该属性需要是virtual,并且它应该具有protected或更高的可访问性。但是,如果我想在程序集中使用这些方便,但又不想暴露它们,我不希望它们是public. 这让我想到了两个问题。

  1. (为了我对正在发生的事情的理解)为什么运行时需要属性public而不是protectedor internal

  2. (针对我的实际情况)是否有任何解决方法可以隐藏导航属性,但仍然具有更改跟踪行为?

4

1 回答 1

2

属性必须是公共的(和虚拟的)或受保护的(和虚拟的)代理才能工作。

代理未在您的程序集中预先定义,因此内部将不起作用。

由于明显的原因(代理从您的类继承),私有将不起作用。

于 2012-06-18T13:01:20.527 回答