Мне нужен способ предоставить членам Dynamic get и установить для данного класса.
Я хочу иметь возможность написать код, подобный этому:
ns1.Resource.Field1 = "Hello";
string myField = ns1.Resource.Field1;
где ns1 - это пространство имен, и я считаю, что «Resource» - это имя класса, а Field1 или любое другое свойство является динамическим.
Так как мне объявить такой класс?
Я узнал о наследовании класса Resource от «DynamicObject», но это вынуждает меня создавать экземпляр класса Resource для объекта - операция, которую я не хочу делать.
Изменить # 1:
Я хочу создать способ использовать класс следующим образом:
Namespace.Resource.DynamicField = "Value";
string myValue = Namespace.Resource.DynamicField;
«Ресурс» не должен создаваться, и DynamicField является членом, который мой класс сможет обрабатывать вызовы get и set для него, поэтому если в каком-то месте кода я напишу
Namespace.Resource.DynamicField2 = "Hello";
У меня будет место, где я могу переопределить вызов set для статического свойства "DynamicField2" Resource. Но я заранее не знаю полного списка свойств класса, поэтому мне нужно, чтобы свойства создавались динамически и были в состоянии контролировать получение и установку, как это было передано «Name», скажем:
public class Resource{
public static getMember(string Name){
console.log(Name); //=> this will output "DynamicField2"
return this.dictionary["Name"];
}
}
, а затем использовать его где-нибудь под кодом
string a = Resource.DynamicField2; // a will be value "Hello"