Я получил тип с полным именем:
"System.Collections.ObjectModel.ObservableCollection`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"
Дело в том, что я хотел бы проверить, является ли мой тип ObservableCollection строки (в текущем случае это так). Вот мой код:
if (propertyType.GetType() == typeof(ObservableCollection<string>))
но, похоже, что-то не получается, и я не понимаю, почему: /
У меня был этот код, который работает:
if (propertyType.Namespace == "System.Collections.ObjectModel" && propertyType.Name == "ObservableCollection`1")
{
//We are dealing with an ObservableCollection
var args = propertyType.GetGenericArguments();
if (args.Count() != 0 && args[0] == typeof(string))
{
//MyCode for ObservableCollection<string>
}
}
но я не чувствую, что это оптимально, и, учитывая, что мне придется обрабатывать другие коллекции (IEnumerable, List, etcetc ...) других типов (int, bool, etcetc ...), это не подходит (