問題タブ [custom-attributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 属性をクラスまたはプロパティに制限することは可能ですか?
次のように定義された2つのカスタム属性があります。
SchemaAttributeをクラスに制限し、AttributeAttributeをプロパティに制限したいと思います。
これは実行可能ですか?
magento - カスタム カテゴリ属性の Magento loadByAttribute
次のように、モジュールのインストール スクリプトでカテゴリのカスタム属性を作成しました。
フィールドは管理者に問題なく表示され、スクリプトでカテゴリを次のように作成すると、次のようになります。
Magneto の管理インターフェイスで値「abcd」を確認できます。しかし、以下のコードを呼び出すと:
結果が出ません。しかし、'Test Category' に設定された 'name' フィールドを使用して loadByAttribute を実行すると、結果が得られます。
そのため、データベースでテーブルを調べcatalog_category_entity_varchar
たところ、'name' 属性には store_id = 0 と store_id = 1 の両方のエントリがあるのに対し、'custom_field' 属性には store_id = 1 のエントリしかないことがわかりました。
テーブルで値が「abcd」に設定された「custom_field」の store_id = 0 エントリを追加するとcatalog_category_entity_varchar
、loadByAttribute は期待どおりの結果を取得しました。
私の質問は、'name' フィールドが store_id = 0 エントリを取得しcatalog_category_entity_varchar
、カスタム フィールドが取得されないのはなぜですか?
カスタム属性でカテゴリを読み込むにはどうすればよいですか?
java - J2EE: カスタム タグ属性のデフォルト値
そのため、Sun の J2EE ドキュメント ( http://docs.sun.com/app/docs/doc/819-3669/bnani?l=en&a=view ) によると、「タグ属性が必要ない場合、タグ ハンドラはデフォルト値。」
私の質問は、ドキュメントの説明に従ってデフォルト値をどのように定義するかです。コードは次のとおりです。
明らかに、このタグはタグ ディレクティブとコア ライブラリのインポートがないため、コンパイルされません。私のポイントは、「可視」プロパティをデフォルトでTRUEにしたいということです。「タグ属性は必須ではない」ため、「タグ ハンドラはデフォルト値を提供する必要があります」。デフォルト値を提供したいのですが、何が欠けていますか?
どんな助けでも大歓迎です。
c# - .NET4でのカスタム属性の変更
最近、C#プロジェクトを.NET3.5から.NET4にアップグレードしました。指定されたMethodBase
インスタンスのリストからすべてのMSTestテストメソッドを抽出するメソッドがあります。その体は次のようになります。
これは.NET3.5で機能しましたが、プロジェクトを.NET 4にアップグレードしてから、。でマークされたメソッドを含むメソッドのリストが指定された場合でも、このコードは常に空のリストを返します[TestMethod]
。.NET 4のカスタム属性で何か変更がありましたか?
デバッグの結果GetCustomAttributesData()
、テストメソッドの結果から、 CustomAttributeData
VisualStudio2010の[ローカル]ウィンドウに次のように記述されている2つのリストが表示されることがわかりました。
Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItemAttribute("myDLL.dll")
Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()
-これが私が探しているものです
GetType()
ただし、その2番目CustomAttributeData
のインスタンスを呼び出すと、が取得され{Name = "CustomAttributeData" FullName = "System.Reflection.CustomAttributeData"} System.Type {System.RuntimeType}
ます。のリストからテストメソッドを抽出できるように、TestMethodAttribute
どうすればから抜け出すことができますか?CustomAttributeData
MethodBase
c# - C#では、属性を使用して自動プロパティに追加の作業を実行させることはできますか?
この質問は関連していますが、これと同じではありません。C#Auto-Propertyにデフォルト値を与えるにはどうすればよいですか?
私は自動プロパティが大好きですが、時々次のようなことをしなければなりません:
同じことを何度もやらなければならないのなら、コードの行や文字をそれほど多く入力する必要がないことを望み始めます。値をインターセプトして、次のように変更できるようにしたいと思います。
このようなことをする方法はありますか?それは愚かでしょうか?もっと良い方法はありますか?他の一般的なコメントはありますか?確かに、私が示した例は少し架空のものであり、これを考えさせられた正確なコードを今は見つけることができません。
ありがとう。
.net - 自動実装された c# get body を実行時またはコンパイル時に置き換える方法は?
私は一晩中これを理解しようとしてきましたが、.Net Framework に関する私の知識はそれほど深くなく、問題は正確に Google にうまく当てはまらないと思いますが、正しい方向にうなずくことができれば、私は何らかの方法で実装できると確信しています。
カスタム属性で装飾されたプロパティを次のように宣言できるようにしたいと思います。
そして、どういうわけか-これは私が理解するのに苦労している部分です-そのゲッターの自動生成された実装を、次のようなカスタムコードに置き換えます。
どのようにすればよいかわからない主なことは、get の自動実装を置き換えることです。
最初に頭に浮かんだのはPostSharp でしたが、それは私が気にかけているよりも複雑な依存関係です。私は、ビルドに添付された後処理を使用せずにコーディングする方法をはるかに好みます (とにかく、PostSharp がそのフックをシンクする方法の要点だと思います)。
この他の部分は、ReplaceWithExpressionFrom 属性の特定のインスタンス化に渡された型パラメーターを取得する方法です (ここで、本体を置き換えたいプロパティを装飾します。つまり、typeof を取得するにはどうすればよいですか)。 (SomeOtherClass) get body 置換をコーディングしている場所)。IExpressionHolder の具体的なインスタンスからコンパイル済みの式をキャッシュする予定です。プロパティが取得されるたびにキャッシュするのは避けたいからです。
私はこれが可能でなければならないと考えています。少なくとも、属性で装飾されたメソッドのアセンブリを検索し、何らかの方法でクラスをプロキシするか、単に IL または .. 何かを置き換えることができるはずだと思いますか? そして、統合をできるだけスムーズにしたいので、どこかで登録または初期化メソッドを明示的に呼び出すことなくこれを行うことができれば、それは非常に素晴らしいことです.
ありがとう!
c# - メソッドの特定のパラメーターに属性を配置することの有用性は何ですか?
パラメータに属性を入れる合理的な使用例のリストを探しています。
メソッド内の属性の適切なケースをいくつか思いつくことができますが、パラメーター属性の適切な使用法が見当たらないようです。教えてください。
メソッドの戻り値の型の属性についてはどうでしょうか。
asp.net-mvc - コントローラー(ASP.net MVC)の各ActionMethodに説明を添付するにはどうすればよいですか?
そこで最近、コントローラー(およびそのIndex ActionMethod)が各ページの上部にある水平バーに(Site.Masterを介して)リストされるナビゲーションバーメニューを動的に構築する方法を思いつきましたが、ユーザーに割り当てられた役割。リストされた各コントローラーは、ユーザーが使用できるActionMethodsも(垂直ドロップダウンで)リストします。
上記の問題を解決するASP.NETMVCの拡張コントローラークラスを作成するために作成したコードについては、こちらを参照してください。
使用可能なすべてのActionMethodと各ActionMethodの短い1文または2文の説明を一覧表示する、各コントローラーのデフォルトのインデックスページも自動的に作成したいのですが、ActionMethodに説明を添付する方法を考えていました。
私の仮定は、私が3つのことをする必要があるということです:
(1)独自の属性、たとえば説明を作成し、各コントローラーの各ActionMethodを次のように装飾します。
(2)基本クラス(ExtController)にパブリックActionResult Index()メソッドを作成します。これは、ExtControllerを継承するすべてのクラスで使用され、そのユーザーが使用できるActionMethodsとその説明のリストを表示します。
(3)そのようなページを作成するIndex.aspxビューをViews/Sharedに作成します。
これは賢明なアプローチですか?これを行うためのより良い方法はありますか?
c# - ICustomAttributeProvider.GetCustomAttributes(...): デザインがおかしい?
MSDN ドキュメント: MemberInfo.GetCustomAttibutes Method (Type, Boolean)のコメントには次のように記載されています。
このメソッドは、プロパティとイベントの継承パラメーターを無視します。プロパティとイベントの属性の継承チェーンを検索するには、Attribute.GetCustomAttributes メソッドの適切なオーバーロードを使用します。
これは基本的に、この実装の 2 番目のパラメーター ( ) がイベント メンバーとプロパティ メンバーbool inherit
に対して無視されることを意味します。ただし、この操作のさまざまな呼び出しは行いません。Attribute.GetCustomAttributes(MemberInfo,Type,bool)
私を困惑させるのは、このデザインです。
2 つの形式のメンバー型で、継承属性を勝手に無視しているように見えるのはなぜですか?
誰かがこれに光を当てることができれば、私は非常に感謝しています.
android - ターゲット レイアウトのカスタム ビュー属性を持つ ViewStub
ViewStub を介してターゲット レイアウトのルート要素にカスタム属性を渡すことは可能ですか? そのようです:
custom_view.xml の場所:
私がそれをしようとすると、CustomView.java は AttributeSet で "app:customAttr" を取得しません。
ViewStub を使用せずに CustomView を直接使用する場合
属性は AttributeSet に正常に取得されます。
しかし、もう怠惰ではありません。
解決策はありますか?
ありがとう、ゆり。