если вы планируете использовать рефлексию, вы предполагаете, что вы уже знаете тип unles, который вы планируете перебирать через члены.
попробуйте это:
Dictionary<int, Person> actual = new Dictionary<int, Person>();
actual.Add(10, new Person { Address = "Abc", Name = "Dipak" });
Dictionary<int, Person> expected = new Dictionary<int, Person>();
expected.Add(10, new Person { Address = "Abc", Name = "Dipak" });
object o1 = actual;
object o2 = expected;
AssertDictionary((Dictionary<int, Person>)o2, (Dictionary<int, Person>)o1);
Или вы можете сказать компилятору, что вы уверены, что делаете, используя ключевое слово dynamic.
AssertDictionary((dynamic)o1, (dynamic)o2);
и избегатьПриведение каждого типа к типу динамическое, тогда вы должны вместо этого изменить метод Я не рекомендую использовать эту технику, хотя * svik-код
private static void AssertDictionary(dynamic expected, dynamic actual)
{
// you will be able to call methods as:
actual.Add(1, new Person()); // intelisence will not help you you have to be carefull with the dynamic type
// I dont recoment using it if there is a work around
}
выглядит намного лучше.Я буду использовать его код, если я, где вы ...