Mam obiekt dynamiczny dziedziczący po DynamicObject. Kod zewnętrzny odwołuje się do mojego obiektu przez refleksję. Czy możliwe jest, aby coś takiego (kod zewnętrzny):
var imie = typeof(DynamicDictionary).GetTypeInfo().GetProperty("Imie");
Console.WriteLine(imie.GetMethod.Invoke(o1, null));
widziało moją dynamiczną właściwość? Mam słownik podobny do tego (mój kod):
public class DynamicDictionary : DynamicObject {
Dictionary<string, object>
_dictionary = new Dictionary<string, object>();
public override bool TrySetMember(SetMemberBinder binder, object value) {
_dictionary[binder.Name] = value;
return true;
}
public override bool TryGetMember(GetMemberBinder binder,
out object result) {
return _dictionary.TryGetValue(binder.Name, out result);
}
}
Chicałbym go używać w ten sposób
dynamic dict = new DynamicDictionary();
dict.Imie = "Marian";
Nie ma możliwości zmiany kodu zewnętrznego. Jedyne możliwe zmiany są w moim kodzie.