Как исправить ошибку «Не удается неявно преобразовать объект типа в System.Attribute»? - PullRequest
0 голосов
/ 13 мая 2019

Я новичок в программировании, у меня был рабочий код, и я обновил свой пакет .NET для nuget (я использую UWP), и после этого эта часть кода перестала работать.

[...]
 if (eh != null)
            {
                Delegate d = (Delegate)(object)eh;


/// This one >
 IEnumerable<Attribute> attributes = d.GetMethodInfo().DeclaringType.GetTypeInfo().GetCustomAttributes(typeof(CompilerGeneratedAttribute), false);

///
                int count = 0;
                using (IEnumerator<Attribute> enumerator = attributes.GetEnumerator())
[...]

Я получил эту ошибку:

CS0266 Невозможно неявно преобразовать тип 'object []' в 'System.Collections.Generic.IEnumerable'.Существует явное преобразование (вам не хватает приведения?)

1 Ответ

1 голос
/ 13 мая 2019

Короче говоря, вы пытаетесь вставить массив объектов object[] в IEnumerable<Attribute>, этого не произойдет.

Просто используйте Enumerable.Cast

Приводит элементы IEnumerable к указанному типу.

 var attributes = d...
                   .GetCustomAttributes(typeof(CompilerGeneratedAttribute), false)
                   .Cast<Attribute>()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...