簡體   English   中英

有條件的Editor可通過web.config AppSettings瀏覽

[英]conditional EditorBrowsable by web.config AppSettings

我有一個項目A ,將在項目B中用作參考。

項目A的類具有根據項目B中指定的條件應該可見還是不可見的方法。 假設在項目B的web.config appSettings中,如果鍵“ DisplayMethod”的值為“ true”,則該方法將可見。

這更多的是版本控制。 我不想為Project A的新版本創建單獨的dll。我希望單個dll能夠同時支持新舊版本。 這樣,Project B的開發人員可以輕松地在web.config中切換版本,重建項目,他很高興。

限制條件

  • 我沒有對Project B的控制權。我只能要求Project B的開發人員進行簡單的修改,例如web.config修改。
  • 我不知道將使用Project A進行哪些項目。Project A是一個開源項目,任何人都可以使用,可能在成千上萬個項目中使用。

“方法可見”是指與以下代碼相同的功能:

[EditorBrowsable(EditorBrowsableState.Never)]
public string SomeMethod(string s)
{
    return "Hello " + s;
}

到目前為止的研究:

我已經看到了這個問題 但是,它的公認答案對我不起作用,因為條件常數只能在該方法所在的同一項目的項目屬性中設置。

條件命名空間也可以,但是在那里我遇到了同樣的問題。

屬性值必須在編譯時由編譯器知道。 因此,要達到的目標是不可能的。 我不是專家,但是Mono Cecil可以做到這一點。 雖然我不確定它是否值得。

如果將“對...可見”表示“僅對...可見”,那么您就可以利用朋友程序集了 它允許另一個程序集訪問標記為內部的方法/屬性/字段等。

為了使它起作用,您需要在編譯時聲明B是A的朋友。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM