(別のBase class
メソッドへのリフレクションによって)呼び出すメソッドがあります。
type.InvokeMember(context.Request["MethodName"],
System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance,
null,
this,
new object[] { context, Jobj }); // jObj is dynamic
jObjパラメータタイプはdynamic
(このタイプは変更できません)です。
MethodName
文字列値が: " "の場合、getFinanceDetails
メソッドが呼び出されます。
void getFinanceDetails(object contextObj, dynamic obj)
{
//Here I need to do obj["Inv_num"].ToString().Decrpyt() ( my extension method).
//but it goes Bang cause I cant use extension method for dynamic.
//But I cant also send it decrypted from base cause not all values are encrpyrted.
}
しかし-私は(メソッド内で)を使用してそれを解決しました:
((object) obj["Inv_num"]).ToString().Decrypt();
しかし、拡張メソッドを有効にするためだけに、毎回オブジェクトにキャストしたくありません。
paramタイプの送信でそれを修正するためにできることはありますか?
私の欲求 :
できるようになりたい: obj.ToString().Decrpyt()
obj["Inv_num"].ToString().Decrpyt()
編集
public static string Decrypt(this string obj)
{
Func<string, string> Decrypt = Encryptions.GetDecryptedCode;
return Decrypt(obj);
}
- obj(この場合は
IDictionary<string , object>
)。だから私はプロパティを読むことができるはずです。(このサンプルのinv_num。