4

私のクラスMyClass<t>には次のメソッドがあります

private static bool TypeHasProperty(string NameOfPropertyToMatch)
{
    var properties = typeof(t).GetProperties();
    var requiredProperty = properties.First(
            a => a.Name == NameOfPropertyToMatch);
    if (requiredProperty == null)
    {
        return false
    };

    return true;
}

これは、静的メソッドの開始時に呼び出されます。

MyClass<t>.SendToJavaScript(t InstanceOfType, string NameOfPropertyWithinType).

続行する前に、実際にその名前のプロパティがあることを確認しInstanceOfTypeます。そうしないと、例外がスローされないためです (この情報は最終的にシリアル化され、アクセスするプロパティを知る必要がある Javascript アプリケーションに送信されます)。その仕事をするために)。

後でプロパティの名前を変更することにした場合に、検証が失敗しないように、そのメソッドを呼び出すタイプセーフな方法が必要です。

たとえば、次のように呼び出したくありません。

MyClass<Person>.SendToJavaScript(MyPerson, "Name")

クラスで変更NameすることにLastName,した場合Person、必ず入ってその魔法のひもを変更する必要があるからです。

私が望むのは、次のようなものです:

MeClass<Person>.SendToJavaScript(
    MyPerson,
    TypeOf(Person).Properties.Name.ToString())

そのため、リファクタリングを使用して に変更NameするLastNameと、IDE がそこをスイープして呼び出しも変更します。

そのようなものは存在しますか?それとも、リファクタリングするときに注意する必要がありますか? (私は私を少し愛していますF2)

4

2 に答える 2