2012-01-10 8 views
0
Expression exp1 = new EqualsExpression(SearchContentProperty.Language, 1033); 

は、uが私にリフレクションでC#のリフレクション - 私はリフレクションでそれを行うために必要なベースタイプエラー

public class SearchContentProperty 
{ 
    public static IntegerPropertyExpression Language { get; } 
} 

を助けることができる、私は、プロパティを取得することができていますが、それは基本型がSystem.Reflection.MethodInfoあるのです。

このため、このプロパティは別のクラスの引数として使用できません。

System.Reflection.MethodInfoMyClass Typeに変換することができません:それは

は、例外がスローされます。 明示的変換もできません。あなたはそれがPropertyInfoなりますMethodInfoではありませんクラスのメンバーLanguage ...を参照していると仮定すると、

+0

"このプロパティは別のクラスの引数です" ? –

+0

あなたが使用している反射コードを表示してください...それは公共のプロパティです、なぜあなたは反射でこれをしようとしていますか? – Yahia

+0

私の目的は、インスタンスを作成するコンストラクタを呼び出すことですが、クラス名は実行時に認識されます。私はリフレクションで作業しています。私は静的なperopertyをそれ自身の基底型でリフレクションで得ることができますか? –

答えて

4

。そうでなければ、あなたのコードは問題を実証していません。

PropertyInfoGetValue methodを公開します。これはオブジェクトとして値を取得します。別のクラスのMethodInfoに提供するには、それをobject[] that will be representing argumentsの正しい序数に挿入するだけです。あなたが直接MethodInfoPropertyInfoを渡すことはできません

PropertyInfoは、プロパティ値の交換ではありません、それはあなたのプロパティ値へのアクセスを提供します。

更新:この場合、私はそれが嫌いです。私は最初の質問に答えましたが、質問が変わって私の答えは完全にマークから外れるようになりました...

+0

はいPropertyInfoですが、PropertyInfoの基本タイプはMethosInfoです –

+1

@VinodKannan 'PropertyInfo'基本タイプは**' MemberInfo' **です:http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo。 aspx –

+0

式exp1 =新しいEqualsExpression(SearchContentProperty.Language、1033); 私は反射でそれを行う必要があります、あなたが私を助けることができます。 –