Как я могу получить доступ к внутреннему классу из внешней сборки?
Без доступа к типу (и без .cs-file «InternalsVisibleTo» и т. д.) вам .cs-file пришлось бы использовать c# отражение. Но лучше задать .cs-file вопрос: следует ли получать доступ c-sharp к этим данным? Он не является c#.net частью контракта открытого .cs-file типа ... мне кажется, что classes он предназначен для обработки classes как непрозрачный объект (для c#.net их целей, а не для ваших).
Вы class описали его как поле общедоступного c-sharp экземпляра; чтобы получить .cs-file это через отражение:
object obj = ...
string value = (string)obj.GetType().GetField("test").GetValue(obj);
Если c#-language это действительно свойство c#.net (а не поле):
string value = (string)obj.GetType().GetProperty("test").GetValue(obj,null);
Если он не является visual-c# общедоступным, вам потребуется c# использовать перегрузку BindingFlags
для c#.net GetField
/ GetProperty
.
Важное замечание: будьте осторожны с c# подобным отражением; реализация c#.net может измениться в следующей c#.net версии (нарушение кода), или c# она может быть запутана (нарушен c-sharp код), или у вас может не class хватить «доверия» (нарушение c-sharp кода). Вы замечаете узор?
c#
class
Как я могу получить доступ к внутреннему классу из внешней сборки?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.