私は次のコードを持っています:
public static IList<SortOption> SortValues()
{
var sortValues = (from prop in typeof(SolrSchemaApp1).GetProperties(BindingFlags.Instance | BindingFlags.Public)
where Attribute.IsDefined(prop, typeof(SolrSortAttribute))
select new SortOption(prop.Name)).ToList();
return sortValues;
}
ここで、SolrSchemaApp1は、ISolrDocumentと呼ばれるインターフェイスから派生したクラスです。
SolrSchemaApp2のインスタンスを渡し、コードにSolrSchemaApp1ではなくそのインスタンスからソートプロパティを選択させたいと思います。事実上、私はこれをしたい:
public static IList<SortOption> SortValues(ISolrDocument schemaToScan)
{
var sortValues = (from prop in typeof(schemaToScan).GetProperties(BindingFlags.Instance | BindingFlags.Public)
where Attribute.IsDefined(prop, typeof(SolrSortAttribute))
select new SortOption(prop.Name)).ToList();
return sortValues;
}
私が行ったのは、ハードコードされたSolrSchemaApp1を別のタイプの変数に置き換えることだけです。ただし、エラーが発生します
タイプまたは名前空間の名前'schemaToScan'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
任意のクラスでGetPropertiesを使用する構文に苦労しています。
Linqを使用して、パラメーターとして渡すクラスのプロパティをスキャンするにはどうすればよいですか?