1

私はSilverlight4のブラウザー外の、信頼性の高いアプリケーションを持っています。OneNote 2010オブジェクトモデルを使用してAutomationFactoryを使用してOneNoteと通信したいのですが、アプリケーションのGetHierarchy()メソッドを機能させることができません。.NETアプリケーションからメソッドを呼び出してデータを取得できるため、OneNoteにデータがあることはわかっています。GetHierarchy()メソッドはnullを返します。助言がありますか?

class OneNoteAutomation
{
    dynamic oneNote;

    enum HierarchyScope
    {
        hsSelf = 0,
        hsChildren = 1,
        hsNotebooks = 2,
        hsSections = 3,
        hsPages = 4
    }

    public void GetHierarchy()
    {
        if (AutomationFactory.IsAvailable)
        {
            this.oneNote = AutomationFactory.CreateObject("OneNote.Application");

            var result = this.oneNote.GetHierarchy(
                string.Empty, 
                (int)HierarchyScope.hsNotebooks, 1);            
        }
    }
}
4

1 に答える 1

1

これは、AutomationFactory で「out」を持つメソッドを使用した呼び出しを使用できないという既知のバグです。SL4 を参照してください - AutomationFactory - 「out」パラメーターを使用してメソッドを呼び出すと例外が発生します:「Could not convert an argument for the call to...」

1ところで、呼び出しで何をしようとしているのかわかりません。これは、選択した列挙型GetHierarchyの XML で埋められる文字列へのポインタです。HierarchyScopeこれは、整数ではなく文字列out変数である必要がありますが、いずれにせよ、バグのために SL4 では機能しません。

于 2011-05-01T09:13:54.357 に答える