私は自分の WinForms デザイナーを開発しています。既存のカスタム フォーム タイプをロードできる必要があります。私が遭遇した問題の 1 つは、既定の ctor のないフォームです。私のコードは現在、既定の ctor を必要とするデザイナにフォームをロードする前にフォームをインスタンス化しています。
OTOH、VS2008はそのようなフォームをロードできます。実際にはフォームをインスタンス化しないと思います(この質問に記載されているように):デフォルトのctorでさえ実行されません。そして、それは本当に InitializeComponent() を実行しません。その関数にメッセージボックスを追加したところ、表示されません。
カスタムフォームタイプを動的に模倣し、関連すると思われる InitializeComponent のコードの一部のみを実行するように見えます。
VS デザイナーの仕組みに関する詳しい情報がどこにあるか知っている人はいますか?
ティア。
注:満足のいく答えが得られないこの関連する質問を見つけました
編集: 追加情報: Steve は非常に興味深い CodeDom を教えてくれました。私の問題は、デザイナーに読み込む必要がある型が、ソース コードとして利用できるのではなく、既にコンパイルされていることです。CodeDom デシリアライゼーションをコンパイル済みコードに適用する方法が見つかりません。