問題タブ [getcustomattributes]
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# - GetCustomAttributesを取得するにはどうすればよいですか?
2.0フレームワークを使用して次のコードを試しましたが、属性が返されますが、コンパクトフレームワークでこれを試すと、常に空の配列が返されます。MSDNのドキュメントには、サポートされていると書かれていますが、何か問題がありますか?
.net - カスタム属性の VB.net 値
カスタム属性は初めてなので、属性の値を取得できるかどうか疑問に思っています。カスタム属性を使用するクラスのプロパティの例は次のとおりです。
これらの属性の値を取得しようとしています (つまり、位置 = 378、長さ = 34 などを取得します)。私が始めていたループは次のようになります。
これにより、すべての属性の名前が取得されますが、値を取得する方法がわかりません。何か案は?
乾杯、
ライアン
code-access-security - ネットワーク共有から読み込まれたアセンブリの System.Type.GetCustomAttributes にすべての属性が表示されない
管理された dll – repro.dll があります。これには、System.ObsoleteAttribute と System.Management.Automation.CmdletAttribute (Windows 7 の GAC にある System.Management.Automation.dll から取得) の 2 つの属性で装飾されたクラス TestModuleCommand が含まれています。
repro.dll がローカル ディレクトリに配置されている場合、System.Type.GetCustomAttributes(false) から返された両方の属性を確認できます。repro.dll がネットワーク パスに配置されている場合、1 つの属性しか表示されません (ただし、System.Reflection.CustomAttributeData.GetCustomAttributes(MemberInfo) を介して両方の属性が表示されます)。これは望ましくありません。両方の属性を確認したいのです (CmdletAttribute をインスタンス化してもセキュリティに影響がないことはわかっています)。
私がオンラインで見つけたものから、repro.dll (ネットワークの場所からロードされた場合) が SMAdll を完全に認識できないことを漠然と認識しています。CAS を使用すると System.Management.Automation で CmdletAttribute が安全であることを宣言できると思いますが、その宣言の書き方がわかりません。何が起こっているのかを完全に理解するには、どこで詳細を読むことができますか? どんな知恵の言葉も歓迎します。
ありがとう、
ルカシュ
PS。以下は、誰でも powershell.exe プロンプトで試すことができる再現です (Windows 7 の場合 - Add-Type コマンドレットは PowerShell v2 の新機能です)。
c# - C# - Silverlight - 列挙型の CustomAttribute
私は次のクラスを持っています:
クラスは正常にコンパイルされますが、プロパティをそれで装飾すると:
コンパイラは次のように吐き出します:
Error 1 An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type C:\...\CompanyX.Modules.Home\HomeModule.cs 28 33 CompanyX.Modules.Home
.net - .Net では、Type.GetCustomAttributes(true) を呼び出したときに返されるインターフェイスで属性が宣言されないのはなぜですか?
この質問に答えType.GetCustomAttributes(true)
て、属性が定義されているインターフェイスを実装するクラスで使用しようとしました。GetCustomAttributes
インターフェイスで定義された属性が返されないことに驚きました。なぜそうしないのですか?インターフェイスは継承チェーンの一部ではありませんか?
サンプルコード:
出力: なし
c# - Displayname などのカスタム属性が GetCustomAttribute でリストされない
カスタム属性を定義してコードを読み込むコードがいくつかありますが、機能しません。問題を解決するために、戻って DisplayName を使用しようとしましたが、同じ問題 GetCustomAttribute または GetCustomAttributes がそれらを一覧表示できないという問題がまだあります。以下に例を示します。
たとえば、クラスに DisplayName 属性を設定しています...
次に、上記のクラスの各メソッドの DisplayName 属性を一覧表示するコードをいくつか用意します。
問題は、DisplayName 属性がリストされていないことです。上記のコードはコンパイル、実行され、メッセージ ボックスが表示されません。
GetCustomAttributes で for each ループを使用しようとしましたが、各メソッドのすべての属性を再度リストしましたが、DisplayName 属性はリストされませんが、コンパイル属性やその他のシステム属性を取得します。
誰が私が間違っているのか知っていますか?
更新 - プロパティではなくメソッドを使用していたことを指摘してくれた NerdFury に感謝します。一度変更すると、すべてが機能しました。
c# - ICustomAttributeProvider.GetCustomAttributes() が Attribute[] ではなく object[] を返すのはなぜですか?
の代わりにICustomAttributeProvider.GetCustomAttributes()
returnが返されるのはなぜですか?object[]
Attribute[]
mscorlibの実装を使用し、ICustomAttributeProvider
システム アセンブリが型ではないオブジェクトを返す状況はありAttribute
ますか?
c# - カスタム属性を逆に解決するには?
次のようなカスタム属性を持つ列挙型があります。
リフレクション、GetCustomAttributes などを使用してカスタム属性を取得する列挙値を使用すると、「前方」の方法は簡単に思えます。
しかし、ある種の逆解決が必要です。char値を持っているので、操作する列挙値が必要です。
何かのようなもの:
値パラメーターとして「A」を入力すると、EnumStatus.value1 が返されます。
何か案は?列挙型を延期して、余分なハッシュテーブルを作成したくありません。
どうもありがとうございます!
.net - linq式を介してオーバーライドされたプロパティから属性を取得する
GetCustomAttributes()
プロパティで定義された属性を取得するために使用しようとしています。問題は、プロパティがオーバーライドされたものであり、式からオーバーライドされたプロパティを抽出する方法がわからないことです。基本クラスのものを取得する方法しか理解できません。
ここにいくつかのコードがあります
MyAttribute
今、私は抽象クラスから抜け出そうとしています。しかし、私はそれを介して取得する必要がありExpression
ます。これは私が使用しているものです:
残念ながらatts
、空になってしまいます。問題は、クラスの代わりになっmenberType
てしまうことです。したがって、属性を取得しても、何も返されません。Text.Content
Abstract.Content
c# - MemberInfo.GetCustomAttributes(Type) が属性の配列を返すように定義されているのはなぜですか?
を持っているとFieldInfo
します。次の 2 つの方法があります。
それはいいです。
しかし、以下のものは?[]
ではなく返されます。Attribute
この質問は、MS の設計上の選択に関するものではありません。field.GetCustomAttributes
私の質問は、特定の属性タイプに対して複数のアイテムを返すことについて心配する必要がありますか? それはどのような場合に起こりますか?
私が推測することは決して不可能です。いくつかのリフレクション ヘルパー関数を記述するときに、これを処理する必要があると思います。