私のクラス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
)