首先,讓我說我已經看到了這種問題的一種解決方案,但是我發現這主要只用於測試目的。如何從C#中的外部程序集訪問「內部」修飾符類屬性
任何人都可以給我一個很好的從C#中的外部程序集調用內部類的內部靜態屬性的方法嗎?
如果有人能給我一個C#的小例子,我將不勝感激。我知道使用「AssemblyVisibleTo」,但我被告知這不是一個好的編碼方式。
首先,讓我說我已經看到了這種問題的一種解決方案,但是我發現這主要只用於測試目的。如何從C#中的外部程序集訪問「內部」修飾符類屬性
任何人都可以給我一個很好的從C#中的外部程序集調用內部類的內部靜態屬性的方法嗎?
如果有人能給我一個C#的小例子,我將不勝感激。我知道使用「AssemblyVisibleTo」,但我被告知這不是一個好的編碼方式。
有三種方式可以訪問internal
數據(無論是靜態或沒有):
internal
因爲你現在有外部的代碼,直接依賴於目的內部實現InternalsVisibleTo
屬性 - 你被告知這是「不是一種好的代碼方式」,大多數人會同意,但是你沒有給出替代方案(因此你的問題)。這與反射(它使客戶端代碼更清晰)具有相同的缺點。因此,請向您的客戶推薦這三種替代方案,看看他們更喜歡哪一種。
嗨斯坦利先生,謝謝你這對我的建議非常有幫助,它可以幫助我很多,我會把它帶給他,看看他有什麼話要說,我們已經有了一個強大的方法來做到這一點,它是一個非常強大和有趣的代碼(據我所知),所以我我無法理解它是如何的在其他地方實施。我能感覺到並看到它。但我不知道如何遵循相同的模式(也許是因爲他告訴我使用InternalVisibleTo屬性的方式不是很好,無論如何,我需要明天提出一個解決方案:(對我來說很傷心)我會試試:)再次感謝您的幫助。:) – Learner
這整個問題不是一個好主意。但是,如果你需要這樣做,'[InternalsVisibleTo]'是正確的方法。 – SLaks
唯一的「良方」就是不要這樣做。該屬性很可能因爲某種原因而成爲「內部」,並且不希望外部代碼對其進行修改。 – shf301
「internal」關鍵字背後的整個想法是不是阻止'external' assembly訪問它? – crush