これが少し複雑になる場合は、事前にお詫び申し上げます。
次のような属性クラスがあります。
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class RepositoryCollectionMethodAttribute : Attribute
{
public string MethodName { get; set; }
public RepositoryCollectionMethodAttribute(string methodName)
{
MethodName = methodName;
}
}
を使用してクラス ドメインをトラバースし、EnvDTE
コード生成用のクラスを収集しています。で 1 つまたは複数のプロパティを装飾するクラスを見つけるRepositoryCollectionMethod
。
この部分は比較的簡単だったので、これらのプロパティの一部を装飾したクラスごとに、 IEnumerable<CodeProperty>
I call を作成しproperties
ました。
今、私は立ち往生しています。これらの EnvDTE オブジェクト (厳密な型指定と優れたドキュメント/例を嫌うように見える)MethodName
の性質上、プロパティのコレクションからプロパティ値の個別のリストを抽出する方法がわかりません。それをRepositoryCollectionMethod
飾る。
つまり、次のような「Foo」クラスがあるとします。
public class Foo
{
public Guid FooId { get; set; }
[RepositoryCollectionMethod("GetFoosByCategory")]
public string Category { get; set; }
[RepositoryCollectionMethod("GetFoosByClass")]
[RepositoryCollectionMethod("GetFoosByClassAndLot")]
public string Class { get; set; }
[RepositoryCollectionMethod("GetFoosByLot")]
[RepositoryCollectionMethod("GetFoosByClassAndLot")]
public string Lot { get; set; }
}
... IEnumerable<CodeProperty>
ofFoo
のプロパティが与えられた場合、次のリストを生成したいと思います。
- GetFoosByCategory
- GetFoosByClass
- GetFoosByClassAndLot
- GetFoosByLot
誰でもこれで私を助けることができますか?