は、オブジェクトの一覧有する物体:私はしたい、今すぐC#のリストから特定の属性を持つプロパティを取得
[AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = true)]
public sealed class PropertyCanHaveReference : Attribute
{
public PropertyCanHaveReference(Type valueType)
{
this.ValueType = valueType;
}
public Type ValueType { get; set; }
}
:属性とその属性で飾られた上記オブジェクトのいくつかの下に持っ
List<ConfigurationObjectBase> ObjectRegistry;
をプロパティがその属性で装飾されているすべてのオブジェクトを検索します。お時間を
List<ConfigurationObjectBase> tmplist = ObjectRegistry.Where(o => (o.GetType().GetProperties().Where(p => p.GetCustomAttributes(typeof(PropertyCanHaveReference), true).Length > 0)));
感謝を:
は、コードの下にしようと、私が間違っているのようです。
第二は、 '' WHERE' Any'ではないでしょうか? –
一見したところでは、あなたのコードは正しいように思えます(しかし、規約を守り、属性クラス 'PropertyCanHaveReferenceAttribute'を呼びたいかもしれません)。実際に「間違っている」とは何ですか?エラーメッセージが表示されたり、結果が表示されません。動作しないオブジェクトや[最小限の、完全で実証可能な例]を提供してください(http://stackoverflow.com/help/mcve) –