Размышления C# о том, как вызвать метод статических расширений с параметром выражения лямбдаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Размышления C# о том, как вызвать метод статических расширений с параметром выражения лямбда

Сообщение Anonymous »

Я определил интерфейс и класс ниже

Код: Выделить всё

    public interface IXmlKey
{
string Name { get; set; }
string Value { get; set; }
bool HasChildren { get; set; }
}

public interface IXmlKey : IXmlKey where T : IXmlKey
{
public T[] Children { get; set; }
}
и метод, код

Код: Выделить всё

private static bool ReadSubXmlKeys(XmlReader subReader, IXmlKey objInstance, bool hasChildren,  out string error)
{
error = null;

var childrenProp = objInstance.GetType().GetProperties().Single(p => p.Name.Equals("Children"));
var childType = childrenProp.PropertyType.GetElementType();
var childPis = childType.GetProperties();

var generateList = typeof(List).MakeGenericType(childType);

var childrenList = Activator.CreateInstance(generateList);
var childrenListType = childrenList.GetType();

//public static bool Any(this IEnumerable source, Func predicate)
var fun = typeof(Func).MakeGenericType(childType, typeof(bool));

var anyMethod = typeof(Enumerable).GetMethodWithLinq("Any", typeof(IEnumerable), typeof(Func)).MakeGenericMethod(childType);

var startNodeName = objInstance.Name;

do
{
var nodeName = subReader.Name;
//var isExist = anyMethod.Invoke(null, [childrenList, ]); ---> here

}
while (subReader.Read());

return true;
}
как видите, я не уверен, какой правильный параметр следует вызывать List.Any(t => t.Name.Equals(nodeName)), где T : IXmlKey
Пожалуйста, помогите.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ion-lambda
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Размышления C# о том, как вызвать метод статических расширений с параметром выражения лямбда
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Размышления Java и мета -аннотационные сканирование
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Размышления Java и мета -аннотационные сканирование
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Размышления API в Java 17 и выше
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Размышления API в Java 17 и выше [дублировать]
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»