2011-02-01 15 views
0

私はOutlookアドイン用に同じ名前空間に2つの部分クラスを持っています。 1つはカスタムフォーム領域用で、もう1つはアドイン自体用です。これら2つのクラスがデータを共有できるようにするにはどうすればよいですか?具体的には、ThisAddInFormRegion1から情報を取得する必要があります。Outlookアドインとカスタムフォーム地域:コミュニケーションはどのように行われますか?

// ThisAddIn.cs 
namespace My_AddIn { 
    public partial class ThisAddIn { 

// FormRegion1.cs 
namespace My_AddIn { 
    partial class FormRegion1 { 

私は私の質問はのThisAddInからFormRegion1ためのインスペクタを取得する方法は本当にあると思います。私は、ThisAddInクラスのInspectors_NewInspectorイベントハンドラメソッド内でこのようなことを試してみた:

Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem; 
if (mailItem != null) { 
    Outlook.Pages page = mailItem.GetInspector.ModifiedFormPages as Outlook.Pages; 
    // previous line causes unhandled COMException error ("the operation failed") 

Outlook.Pages page = Application.GetInspectors[mailItem].ModifiedFormPages["FormRegion1"]; 
// previous line causes unhandled COMException error ("type mismatch") 

誰でもFormRegion1にアクセスするための適切な方法に任意の洞察力を持っていますか?

答えて

1

ThisAddInにFormRegion1(FormRegion1がインスタンス化される前に見つかったものすべて)の参照を取得できるハンドラーのイベントが見つかりませんでした。私はThisAddInに各FormRegion1インスタンスへの参照を与えるためにシングルトンを使用しました。

+0

コードの例はありますか?私は同じことをしようとしているが、シングルトンを書くことに慣れていない。 –

+0

@Larry:適切なインスタンスの交渉に対処したくないので、私はそのアプローチもやめました(さもなければ、シングルトンはストレージの最新コピーを生成し、複数のウィンドウに分割します)。良い例のコード:http://csharpindepth.com/Articles/General/Singleton.aspx – wes

+0

だから解決策は何ですか? – kavun

関連する問題