如何使用反射覆盖虚拟内部函数?
我想要实现的sharepoint程序集(SPIisWebServiceApplication)中有一个抽象类。
在我的逻辑中,我有义务覆盖 IisApplicationName 属性,我可以使用反射器看到它,如下所示:
内部虚拟字符串 IisApplicationName { 得到 { return base.Id.ToString(“N”); }}
它只是内部不受保护......
我不希望IisApplicationName成为id,因为它出现在IIS中。 我想像其他内部实施者那样覆盖它。
答案 0 :(得分:4)
反思是访问现有类型的结构,而不是更改它。 (您可以更改存储在实例类型中的数据,但不能更改类型本身的结构。)
目前尚不清楚你要做什么,但如果你试图覆盖一个成员,反思不太可能对你有帮助。
答案 1 :(得分:1)
您可以正常派生该类并覆盖该函数,该函数可能是protected virtual internal
(private
不能是virtual
,如果不是internal
,则不需要public
它是interal
)。这样的访问规范允许 {/ em> protected
和 {{1}}的访问模型 - 即,可以从同一程序集中的类访问该方法来自派生类的和。
有什么东西阻止你这样做吗?