2011-07-19 19 views
0

リフレクションを使用してオブジェクトの説明を取得する方法。私は名前、価値などを得ることができますが、ネットのような記述ではありません。リフレクションを使用したオブジェクトプロパティの取得

たとえば、.Textの説明は "このコントロールに関連付けられたテキストを取得または設定します。"

私はおそらくMethodInfoを使用していると考えましたが、説明はしません。

Dim MethodObj As MethodInfo 
    Console.WriteLine("Methods:") 
    For Each MethodObj In GetType(TextBox).GetMethods() 
     Debug.Print(MethodObj.Name & " " & MethodObj.ReturnType.ToString()) 
    Next 

答えて

0

この説明は、リフレクションではアセンブリにコンパイルされないため、取得できません。コンパイル中に、この記述を含むXML documentation fileが生成されます。説明を取得するには、このXMLファイルを解析する必要があります。ただし、アセンブリを実行する必要はないため、このファイルは常にあるとは限りません。

+0

理由私は、アプリケーションで単純なロジックを作成するためのテキストエディタを構築しただけで、プロパティ名以上のものを提供したいと思っています。私はデータベースに説明を追加し、そこから引き出す必要があると思う。 – TroyS

+0

@tmax:あなたのプロパティに[DescriptionAttribute'](http://msdn.microsoft.com/en-us/library/system.componentmodel.descriptionattribute.aspx)を使用することもできます。これは、リフレクションによって取得できます。 –

+0

ええと...私はそれを試してみます – TroyS

1

MSDNに記載されている説明を意味する場合、それは実行可能コードに付属するメタデータの一部ではありません。アセンブリの横にXMLドキュメントがある場合、その中で適切なメソッドを見つけようとすることができます。しかし、ほとんどの場合、それが利用可能であるとは思わないでしょう。

+0

ありがとうございました。時間を節約して研究しています。私は説明をdbに入れると思います。これにより、より安定したものになります。私は彼らにenireコレクションではなく限られた特性しか与えていない。 – TroyS

関連する問題