Я нашел в .NET что-то, что работает немного иначе, чем я ожидал.Код, который я вставляю, не имеет смысла, но это сжатая версия гораздо более сложной функции, которую я имею.По сути, я получаю информацию об анонимном типе в качестве параметра (еще не создано ни одного экземпляра анонимного типа), и мне нужно создать список этого типа, заполнить его, а затем вернуть список.Теперь я нашел решение, но хотел знать, почему метод B работает, а не метод A.
Метод A:
static void Main(string[] args)
{
var newItem = new { ID = Guid.NewGuid(), Name = "Test" };
dynamic list;
list = Activator.CreateInstance(typeof(List<>).MakeGenericType(newItem.GetType()));
list.Add(newItem);
list.Add(Activator.CreateInstance(newItem.GetType(), new object[] { Guid.NewGuid(), "Test 2" }));
}
Метод B:
static void Main(string[] args)
{
var newItem = new { ID = Guid.NewGuid(), Name = "Test" };
System.Collections.IList list;
list = (System.Collections.IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(newItem.GetType()));
list.Add(newItem);
list.Add(Activator.CreateInstance(newItem.GetType(), new object[] { Guid.NewGuid(), "Test 2" }));
}
Опять же, я не ищу решения, просто любопытно, почему метод B работает, но не метод A.
Спасибо!