У меня есть класс simlpe с типом свойства IEnumerable. При попытке создать сериализатор с отражением (см. Microsoft .NET SDK для Hadoop) завершается сбоем со следующим исключением.
Не удалось найти подходящий известный тип для «System.Collections.Generic.IEnumerable`1[System.String]».
Но это работает, когда вместо IEnumerable используется строка []
Используемый класс
[DataContract]
public class MyClass
{
[DataMember]
public string Field1;
[DataMember]
//public string[] Array1; This works
public IEnumerable<string> Array1; //this doesn't
}
Код
public void CreateSerializer()
{
var serializer = AvroSerializer.Create<MyClass>();
}
Буду признателен за любую оказанную помощь. Почему IEnumerable не поддерживается или обходной путь.
no known type
для списка. Оказывается, каждому типу, используемому в коллекции, нужен атрибут. Для себя я добавил в класс[KnownType(typeof(List<MyCompany.TimedEvent>))]
, чуть ниже[DataContract]
. Я предполагаю, но может быть[KnownType(typeof(IEnumerable<string>)]
сработает. Странно, что наstring
s из коробки не заработало. - person Cameron Taggart   schedule 11.01.2016