2011-03-25 95 views
0

如何覆盖使用反射的虚拟内部函数?如何覆盖内部函数

我在我想要实现的sharepoint程序集(SPIisWebServiceApplication)中有一个抽象类。

在我的逻辑我有义务覆盖IisApplicationName财产,我可以使用反射镜看到它是writen象下面这样:

内部虚拟串 IisApplicationName { 得到 { 返回基地.Id.ToString( “N”); }}

它只是内部它是不受保护的......

我不想因为它出现在IIS的IisApplicationName是一个id。 我想重写它,因为它们已经在其他内部实现者中完成了。

回答

4

反射是关于访问现有类型的结构,而不是改变它。 (你可以改变存储在实例的类型的数据,但你不能改变结构类型本身的

目前尚不清楚你想要做什么,而是反射不大可能如果您尝试覆盖成员,可以帮助您。

+0

好的,你有什么建议?我可以使用什么? – Gaby 2011-03-25 09:32:23

+0

@Gaby:这是不可能的,因为你没有解释你想要做的事情。 – 2011-03-25 09:37:28

+0

我编辑了我的帖子来解释我的概率。请让我知道,如果你想要更多的信息 – Gaby 2011-03-25 10:11:09

1

您可以从正常类派生并重写的功能,这大概是protected virtual internalprivate不能virtual,并且它不会需要是internal如果它是public)。这样的接入规范允许的接入模型两者interalprotected - 即,该方法可以从类在同一组件和从派生的类访问。

有什么可以阻止你这样做吗?

+0

我想覆写的属性是虚拟的内部。我已经编辑过我的帖子,请让我知道你是否想让我解释更多。 – Gaby 2011-03-25 10:08:39

+0

然后,该属性是一个实现细节,目的不明确 - 我期望有一种自然的方式来实现你所需要的,而不会干扰它。 MS的开发者不会犯这样的基本错误。 – Jon 2011-03-25 10:47:49