В C# класс ExpandoObjectпозволяет создавать объекты с динамическими свойствами во время выполнения. Доступ к этим динамическим свойствам и их изменение можно получить с помощью индексатора. Вот несколько методов, связанных с использованием индексатора с ExpandoObject:
-
Добавление свойств. Вы можете добавлять свойства к экземпляру
ExpandoObjectс помощью индексатора. Например:dynamic expando = new ExpandoObject(); expando.FirstName = "John"; expando.LastName = "Doe"; -
Доступ к свойствам. Вы можете получить доступ к свойствам
ExpandoObjectс помощью индексатора. Например:string firstName = expando.FirstName; string lastName = expando.LastName; -
Изменение свойств. Вы можете изменить существующие свойства
ExpandoObjectс помощью индексатора. Например:expando.FirstName = "Jane"; -
Удаление свойств. Вы можете удалить свойства из
ExpandoObjectс помощью методаIDictionary. Например:.Remove ((IDictionary<string, object>)expando).Remove("LastName"); -
Проверка существования свойства: вы можете проверить, существует ли свойство в
ExpandoObject, используя методIDictionary. Например:.ContainsKey bool hasFirstName = ((IDictionary<string, object>)expando).ContainsKey("FirstName"); -
Перебор свойств. Вы можете перебирать свойства
ExpandoObject, используя свойствоIDictionary. Например:.Keys foreach (string propertyName in ((IDictionary<string, object>)expando).Keys) { // Do something with each property } -
Динамический вызов метода. Вы можете динамически вызывать методы для
ExpandoObject, используя методDynamicObject.TryInvokeMember. Например:dynamic expando = new ExpandoObject(); expando.SayHello = new Action(() => Console.WriteLine("Hello!")); expando.SayHello();