2011-03-25 72 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