private static void DemoExpadoObjMethod() { // Для динамического обьекта ExpandoObject возможно обьявлять несколько различных свойств dynamic myExpObj = new System.Dynamic.ExpandoObject(); myExpObj.Name = "Administrator"; myExpObj.Password = "******"; myExpObj.Role = new List <dynamic> { "admin", 10, 20, "user" }; Console.WriteLine($"login: {myExpObj.Name} Password: {myExpObj.Password}"); foreach (dynamic r in myExpObj.Role) // перечисление ролей { Console.WriteLine(r); } // объявляем метод меняющий пароль и добавляющий к нему 10 myExpObj.ChangePassword = (Action <dynamic>)(x => myExpObj.Password = x + 10); // ! Внимание если пароль число то будет суммирование, если строка то в конце добавится 10 // ! Подобные ошибки часто могут приводить к непредсказуемому поведению программы myExpObj.ChangePassword("NewPassword"); Console.WriteLine($"login: {myExpObj.Name} Password: {myExpObj.Password}"); }