2011-08-10 14 views
4

COMの知識はほとんどありませんが、私はできるだけ明確な質問をしようとします。COM DLLを参照するときにヘルプテキストが失われる

私は.NET 4.0プロジェクトを持っており、VBScriptで書かれた古いCOM DLLを参照しています。

このDLLをコードで使用すると、メソッドとクラスを記述するVS2010のカスタムhelptextは取得されません。オブジェクトブラウザでは使用できません。

これは、.NETによってCOMライブラリに適用される自動ラッパーと関係があると思います。ヘルプテキストはプロセス中に失われているようです。

私はVSのオブジェクトブラウザで直接DLLを表示すると、私は方法のためのテキストを見ることができるになど

参照COMのDLLをコーディングするための記述テキストを維持する方法はありますか?

+1

.NETにはIntelliSense情報をアセンブリに埋め込む方法がありません。これは、別の.xmlファイルで提供されます。タイプライブラリインポータ(tlbimp.exe)には、埋め込みヘルプ属性をIntelliSense .xmlファイルに変換する方法がありません。役に立つかもしれませんが、おそらくここに提案として投稿することができます:http://clrinterop.codeplex.com/releases/view/17579 –

+0

これは、.NET/VSが使用するデフォルトのインポーターですか? – magnattic

+0

いいえ============ –

答えて

0

パラメータタイプの情報ではなく、.NETクラスで使用できるインラインヘルプドキュメントを参照していますか?もしそうなら、私はあなたの不満を分かち合います。私はCOM interopを介してCOMオブジェクトを消費するC#プログラマの利益のために、IDLにhelpstringコメントを書くことに多大な努力を払って、タイプライブラリのインポートに耐えられるものがないことを知りました。

Adam Nathanの著書「.NET and COM:The Complete Interoperability Guide」の「FAQ:型ライブラリインポータが、なぜHelpAttribute内のヘルプ文字列の内容を自動的に保存しないのですか」の説明があります。私は、この本がその年齢にもかかわらずCOM相互運用性について学ぶのに非常に役立つことを発見しました。 Kindle、epub、pdf形式で購入することもできます。

Adam Nathanの説明では、helpstring属性はSystem.ComponentModel.DescriptionAttributeオブジェクトに変換されません。なぜなら、DescriptionAttributesはWindowsフォームコントロール用であり、ローカライズできないからです。

Peronally、私はまだhelpstring属性がとにかく翻訳された方が好きです。すでに機能していない場合は、上にリンクされているコードプレックスタイプのライブラリインポータにその機能を追加することもできます。

関連する問題