[英]conditional EditorBrowsable by web.config AppSettings
我有一個項目A ,將在項目B中用作參考。
項目A的類具有根據項目B中指定的條件應該可見還是不可見的方法。 假設在項目B的web.config appSettings中,如果鍵“ DisplayMethod”的值為“ true”,則該方法將可見。
這更多的是版本控制。 我不想為Project A的新版本創建單獨的dll。我希望單個dll能夠同時支持新舊版本。 這樣,Project B的開發人員可以輕松地在web.config中切換版本,重建項目,他很高興。
限制條件
“方法可見”是指與以下代碼相同的功能:
[EditorBrowsable(EditorBrowsableState.Never)]
public string SomeMethod(string s)
{
return "Hello " + s;
}
到目前為止的研究:
我已經看到了這個問題 。 但是,它的公認答案對我不起作用,因為條件常數只能在該方法所在的同一項目的項目屬性中設置。
條件命名空間也可以,但是在那里我遇到了同樣的問題。
屬性值必須在編譯時由編譯器知道。 因此,要達到的目標是不可能的。 我不是專家,但是Mono Cecil可以做到這一點。 雖然我不確定它是否值得。
如果將“對...可見”表示“僅對...可見”,那么您就可以利用朋友程序集了 。 它允許另一個程序集訪問標記為內部的方法/屬性/字段等。
為了使它起作用,您需要在編譯時聲明B是A的朋友。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.