Да, это можно сделать.
Используется Type.GetProperty()
.
Пример:
// Load your assembly and Get the Type
// Assembly load code...
...
// Get type
Type asmType = typeof(C);
// Get internal properties
PropertyInfo pi = asmType.GetProperty("About_Name", BindingFlags.NonPublic | BindingFlags.Static);
// Get Value
var val = pi.GetValue(asmType, null);
Этот код вернет "text
" в val
, поэтому оттуда делайте то, что вам нужно с ним.
Чтобы сделать это в том смысле, в каком вы хотите, превратить код в метод следующим образом:
private static string GetString(Type classToCheck, string PropertyName)
{
PropertyInfo pi = classToCheck.GetProperty(PropertyName, BindingFlags.NonPublic | BindingFlags.Static);
object val = null;
if (pi != null)
val = pi.GetValue(classToCheck, null);
return (val != null) ? val.ToString() : string.Empty;
}
Тогда использование будет:
string expected = GetString(typeof(C), "About_Name");