問題タブ [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# - コードが繰り返される c# プロパティ
次のような一連のプロパティを持つクラスがあります。
これらのバッキング ストアを生成するために C# 3.0 に頼ることができれば、はるかに簡単になりますが、IsDirty=true; を除外する方法はありますか? プロパティを次のように記述しても、同じ動作が得られるようにします。
.net - AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersion の違いは何ですか?
3 つのアセンブリ バージョン属性があります。違いは何ですか?AssemblyVersion
残りは無視して使ってもいいですか?
MSDN は次のように述べています。
-
帰属するアセンブリのバージョンを指定します。
-
Win32 ファイル バージョン リソースに特定のバージョン番号を使用するようにコンパイラに指示します。Win32 ファイルのバージョンは、アセンブリのバージョン番号と同じである必要はありません。
AssemblyInformationalVersion :
アセンブリ マニフェストの追加のバージョン情報を定義します。
これは、アセンブリ属性を使用するためのベスト プラクティスは何ですか?のフォローアップです。
c# - VS プロパティ ウィンドウに表示されないように UserControl プロパティを設定する
パブリック プロパティを持つ Asp.net プロジェクトに UserControl があります。ユーザーが IDE で UserControl のインスタンスを強調表示したときに、このプロパティが Visual Studio の [プロパティ] ウィンドウに表示されないようにします。表示されないようにするには、どの属性 (または他の方法) を使用すればよいですか?
c# - PropertyGrid、DefaultValueAttribute、動的オブジェクト、および列挙
注:私は.Net 1.1を使用していますが、より高いバージョンを使用する回答に完全に反対しているわけではありません。
PropertyGridに動的に生成されたオブジェクトを表示しています。これらのオブジェクトには、数値、テキスト、および列挙のプロパティがあります。現在、列挙のデフォルト値を設定して、リストで常に太字で表示されないようにするのに問題があります。列挙自体も動的に生成され、デフォルト値を除いて正常に機能しているように見えます。
最初に、エラーの原因となっている場合に列挙を生成する方法を示したいと思います。最初の行は、カスタムクラスを使用してデータベースをクエリします。この行をDataAdapterまたはデータベース値でDataSetを埋めるお好みの方法に置き換えるだけです。列1の文字列値を使用して列挙を作成しています。
次に、型の作成方法について説明します。これは主に、ここで提供されているサンプルコードに基づいています。基本的に、pFeatureをデータベース行と考えてください。列をループし、列名を新しいプロパティ名として使用し、列値をデフォルト値として使用します。それが少なくとも目標です。
最後に、そのタイプを使用してインスタンスを作成し、デフォルト値をロードして、後でPropertiesGridを使用して表示できるようにします。
ただし、列挙型のデフォルト値を取得しようとすると、エラーが発生します。DefaultValueAttribute dvaは設定されないため、使用しようとすると例外が発生します。
このコードセグメントを変更すると、次のようになります。
これに:
DefaultValueAttributedvaの取得に問題はありません。ただし、フィールドはデフォルト値と一致しないため、PropertiesGridで太字になっています。
生成された列挙にデフォルト値を設定したときにDefaultValueAttributeを取得できない理由を誰かが理解できますか?ご想像のとおり、私はまだReflectionを初めて使用するので、これはすべて私にとってかなり新しいことです。
ありがとう。
更新:alabamasucks.blogspotに応じて、ShouldSerializeを使用すると確かに私の問題は解決します。通常のクラスを使用してメソッドを作成することができました。ただし、生成されたタイプに対してこれを行う方法がわかりません。私が理解できることから、MethodBuilderを使用し、ILを生成して、フィールドがデフォルト値と等しいかどうかを確認する必要があります。簡単そうに聞こえます。これをILコードで表現したい:
同様のコードからildasm.exeを使用してILコードを取得できましたが、いくつか質問があります。ILコードでval変数を使用するにはどうすればよいですか?私の例では、値が0のintを使用しました。
ILにはタイプごとに異なるロードコマンドがあるため、これは確かに注意が必要です。現在、私はint、double、strings、およびenumerationsを使用しているため、コードはタイプに基づいて適応する必要があります。
誰かがこれを行う方法を知っていますか?それとも私は間違った方向に向かっていますか?
nhibernate - NHibernate を使用した列挙型のコレクションのマッピング
NHibernate を使用した列挙型のコレクションのマッピング
具体的には、マッピングに属性を使用します。
現在、私はコレクションをタイプ Int32 としてマッピングする作業を行っており、NH がそれを処理しているように見えますが、それは正確には理想的ではありません。
マップしようとしている列挙型のコレクションをマップしようとすると、「型を特定できません」というエラーが表示されます。
クラスを次のように定義すると言った投稿を見つけました
次に、列挙型をCEnumTypeとしてマップしますが、これにより「CEnumTypeがマップされていません」または同様の結果が得られます。
それで、誰かがこれを行った経験がありますか?
とにかく、例を示すための単純な参照コードのスニペットです
では、この列挙型のコレクションを実際の列挙型としてマップするための正しい属性を誰かが取得しましたか? それらが int ではなく文字列としてデータベースに格納されていれば本当にいいのですが、完全に必要というわけではありません。
c++ - C++ の属性 & リフレクション ライブラリ?
ほとんどの成熟した C++ プロジェクトは、独自のリフレクションと属性システムを持っているようです。つまり、文字列でアクセスでき、自動的にシリアル化できる属性を定義するためのものです。私が参加した少なくとも多くの C++ プロジェクトは、車輪の再発明のように見えました。
リフレクションと属性コンテナーをサポートする、C++ 用の優れたオープン ソース ライブラリを知っていますか。具体的には次のとおりです。
- マクロによる RTTI と属性の定義
- コードによる RTTI と属性へのアクセス
- 属性の自動シリアル化
- 属性の変更をリッスンする (例: OnValueChanged)
.net - VS: ビルド時に不足している XML コメントを無視するための属性
私はxmlドキュメントを使用したVS2008ソリューションを持っており、リリースモードでエラーがオンになっているため警告があります(私見の素晴らしい機能)。ただし、これにより、(自己記述型の) 列挙型のすべての要素などの「xml コメントがありません」エラーの長いリストが作成されます。
xml コメントの要件をオフにする属性などを知っている人はいますか? 理想的には、1行だけでなく、区切られた領域に(そうでなければ、すべてのアイテムの前に空のタグを付けて、目的を無効にすることができます...)
ありがとう!
.net - DirectoryInfo.GetDirectories() と属性
DirectoryInfo.GetDirectories()
特定のパスの下にあるすべてのサブディレクトリを見つけるために再帰的に使用しています。ただし、システム フォルダーを除外したいのですが、明確な方法がありません。FindFirstFile/FindNextFile では、属性がより明確になりました。
.net - ミリ秒とgmtを使用せずにDateTimeを時間にシリアル化する
XSDファイルを入力として使用してC#クラスファイルを作成しました。私のプロパティの1つは次のようになります。
シリアル化すると、ファイルの内容は次のようになります。
プロパティにXmlAttributesを使用して、ミリ秒とGMT値なしでこのようにレンダリングすることは可能ですか?
これは可能ですか、それともクラスがシリアル化された後、ある種のxsl / xpath-replace-magicを一緒にハックする必要がありますか?
オブジェクトをStringに変更するソリューションではありません。これは、アプリケーションの残りの部分でDateTimeのように使用され、XmlSerializer.Serialize()メソッドを使用してオブジェクトからxml表現を作成できるためです。
フィールドから余分な情報を削除する必要がある理由は、受信システムが時間データ型のw3c標準に準拠していないためです。
.net - InternalsVisibleTo 属性が機能していません
InternalsVisibleTo
アセンブリ属性を使用して、.NET クラス ライブラリの内部クラスを単体テスト プロジェクトに表示しようとしています。何らかの理由で、次のようなエラー メッセージが表示され続けます。
'MyClassName' は、保護レベルが原因でアクセスできません
両方のアセンブリが署名されており、属性宣言に正しいキーがリストされています。何か案は?