ASP.Net MVCプロジェクトでFoolproofライブラリを使用していますが、場合によっては、アトリビュートを使用しているモデルのメンバークラス内のプロパティをチェックする必要があります。C#の属性でクラスのプロパティの完全修飾名を取得するためにnameofを使用するにはどうすればよいですか?
たとえば、Address型のプロパティを持つユーザークラスがあり、AddressでCityを確認する必要があります。
「Address.City」と言うことができる例では、属性にはドット表記のプロパティの名前が必要です。
:私は後で(住所または市)私はこのようにそれを使用する場合、その目的のために、そしてもちろんのがNameOf使用する必要がのいずれかの名前を変更する必要がある場合、これはリファクタリングの問題に苦しんでいる。もちろん
nameof(Address.City)
都市のみが生産されます。
属性で許可される定数値を生成するため、nameofが必要です。
私は参照がそれが可能ではあるが方法はないと伝えていることがわかりました。発言のセクションで https://msdn.microsoft.com/en-us/library/dn986596.aspx それは言う:
あなたは完全修飾名を取得する必要がある場合は、あなたががNameOfとともにtypeof演算式を使用することができます。
しかし、これを行う方法を教える場所が見つかりませんでした。
誰でも助けてください。 あなたの時間と労力を事前に感謝します。
私の答えをチェックしてください。 – GregaMohorko
便利な議論に感謝しました。 –
"残念なことに、これは、ユーザーの名前にアクセスする方法がなく、完全修飾名を属性で直接使用することを意味します。 - それは完全には真実ではありません - あなたの最初の例では、 "+"の連鎖があります。 +は、式が定数文字列に変換されるため、うまく動作します(ちょうど冗長です)。 – Rob