私のクラスのプロパティに検証属性を追加しています。私は図書館を持っています。第三者の図書館にはStringLengthAttribute
が含まれています。 System.ComponentModel.DataAnnotations
の下に同じ名前の属性があることがわかりました。
私が作成しているクラスでサードパーティとSystem.ComponentModel.DataAnnotations
の両方を使用しています。それはStringLengthAttribute
にあいまいさを引き起こします。コンパイラは、のような属性に@
を使用するように提案しました。それは私がしたことですが、F12
(定義に移動)しようとすると、それが私を第三者図書館に連れて来ました。あいまいさを解決する属性の前に@記号を理解する必要があります
私は属性で@
記号が実際にどのように動作するかを理解したいと私はサードパーティとDataAnnotation
の両方の名前空間を使用して宣言されていることを考えることをやるべきか、第三者ではなくSystem.ComponentModel.DataAnnotation.StringLengthAttribute
を使用したいですクラスの上の部分。
[@StringLength(10)]
public string Name { get; set; }
:ここ
はおそらく私がやったよりも、この優れたを説明するC#言語仕様からの例です。 @wablabは何をしますか?そのように動作しないときに何かがどのように動作するかを尋ねているので、可能な答えはありません。問題の唯一の解決策は、属性に完全修飾名前空間を使用することです。 –