のは、私は拡張パラメータとして文字列を取得します。この方法であるとしましょう:は、拡張メソッドからプロパティ名を取得することは可能です
private static List<string> ValidationErrors = new List<string>();
private static void ErrorCheck<T>(this string str)
{
if (string.IsNullOrEmpty(str))
{
// This just returns "str"
// Instead of property name (see "How I use" section")
ValidationErrors.Add(typeof(T).Namespace + "[" + nameof(str) + "]");
}
}
をそして、これは私がそれを使用する方法です:
Car.Color.ErrorCheck<Car>();
CarオブジェクトのColorは文字列プロパティです。だから私が望むのは、私の拡張メソッドで "str"の代わりに "Color"を得ることです。
どのように私はこれを達成することができましたか?
'Car.Color.ErrorCheck()'あなたがタイプミスマッチができたという事実を(例えば、 'Car.Color.ErrorCheck ()')必要がありますあなたの現在のシステムがあることを手掛かりあなたを中欠陥がある。文字列をパラメータとして渡すと、その文字列の元の場所を知る方法がありません(あなたの場合は 'Car.Color')。 (Car.ErrorCheck(x => x.Color)) –
Flater
ええ、ありがとう!あなたのコメントの前にそれを考えなかった。スジは通ってるようだ。 –