«Фильтрация» коллекции перед запуском в нее запроса Linq

Вы можете использовать пакет requireg для решения этой проблемы:

var forever = require('requireg')('forever')

выполнит трюк.

Кроме того, есть еще один модуль , global-npm , хотя и для использования только глобального npm, вы можете посмотреть короткий код и посмотреть, как работает эта техника.

1
задан Johan Leino 13 August 2010 в 07:51
поделиться

2 ответа

Ни одного?

from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
where !prop.Attributes.OfType<IgnoreAttribute>().Any()
from attribute in prop.Attributes.OfType<ValidationAttribute>(). 
where attribute.IsValid(prop.GetValue(instance)) == false 
select new ...etc 
1
ответ дан 2 September 2019 в 22:11
поделиться

Вам нужна гибкая модель PropertyDescriptor ? С рефлексией довольно просто:

    var filtered = instance.GetType().GetProperties()
        .Where(prop => !Attribute.IsDefined(prop, typeof(IgnoreAttribute)));

Или сделать все целиком:

    var invalid = from prop in instance.GetType().GetProperties()
                   where !Attribute.IsDefined(prop, typeof(IgnoreAttribute))
                   let valAttribs = Attribute.GetCustomAttributes(
                            prop, typeof(ValidationAttribute))
                   where valAttribs != null && valAttribs.Length > 0
                   let value = prop.GetValue(instance, null)
                   from ValidationAttribute valAttrib in valAttribs
                   where !valAttrib.IsValid(value)
                   select new {};
1
ответ дан 2 September 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: