できる属性を追加する動的にクライアントまで、フルのC#?
-
02-07-2019 - |
質問
することはできる属性は実行時に変更となる属性の値で実行?
解決
属性は、静的メタデータを指すものとします。アセンブリ、モジュール、型、メンバー、パラメータや戻り値なfirst-classオブジェクトのC#などの System.Type
クラスはその反射を表現します。きのインスタンス属性のための種類や特性を変えるだけでなく、書き込み可能な影響を与え属性を対象として適用された例があるタイプです。
他のヒント
このように使しようとしている国での生活を経験しました。
の システム。ComponentModel.TypeDescriptor も使用できる追加の属性の種類、性質およびオブジェクトインスタンスで制限することで取得する方性があります。い書面にコードが消費者の属性、および住んで見るとその限界、そしてコーヒーのサービスもよかったらします。
私がよく知られているようにPropertyGrid制御、visual studioのデザイン面だけでも、BCLを消費するTypeDescriptor。実際、どうやって約半分にも本当に必要があります。
なので、それができません。一回避策が生派生クラスの実行時に、追加の属性がこのビットを失わせないアイテムです。
ものであることのない記事を見つける参照を使用している。出ください。
こちらのリンク: http://www.codeproject.com/KB/cs/dotnetattributes.aspx りますので、見たいへのコメントの下部に記事が可能でアプローチを検討した。
いいえ、でとなります。
属性のメタデータ保存のバイナリ形式は、コンパイルした組み立てることも理由のみでご利用いただけ簡単なタイプです。
いと思っています。でも私は間違っているのは、最も望むことができまたは追加した全体型ないし インスタンス のタイプです。
すことがあります。できる動的に追加され、c#の属性の方針についてどう思います。見を格納するデータ形式をサポートしています。いったプロジェクトを開始していますのw/属性が、最終的に移動し直列化w/コンポーネントです。
なぜ必要なのか。属性が贈るショートカットキーを反映は、そのまま外部に知性を特徴とすだけるという仕組みが必要になる。
お店のメタデータを外部に比較的簡単にデータベースやリソースファイルです。
して表現できたと思う。ComponentModel.TypeDescriptor。ないものとすることはできな仕事がうコードです。
カウンターに、たとえば一部の属性値です。かったの2つの機能を作ること。
// ************************************************************************
public static void SetObjectPropertyDescription(this Type typeOfObject, string propertyName, string description)
{
PropertyDescriptor pd = TypeDescriptor.GetProperties(typeOfObject)[propertyName];
var att = pd.Attributes[typeof(DescriptionAttribute)] as DescriptionAttribute;
if (att != null)
{
var fieldDescription = att.GetType().GetField("description", BindingFlags.NonPublic | BindingFlags.Instance);
if (fieldDescription != null)
{
fieldDescription.SetValue(att, description);
}
}
}
// ************************************************************************
public static void SetPropertyAttributReadOnly(this Type typeOfObject, string propertyName, bool isReadOnly)
{
PropertyDescriptor pd = TypeDescriptor.GetProperties(typeOfObject)[propertyName];
var att = pd.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute;
if (att != null)
{
var fieldDescription = att.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);
if (fieldDescription != null)
{
fieldDescription.SetValue(att, isReadOnly);
}
}
}
Javaを使ってこの用地図及び実施に自分なりにキーと値の符号といいます。
http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueCoding/KeyValueCoding.html