1

我有一个 Silverlight 4 浏览器外的提升信任应用程序。我想使用 OneNote 2010 对象模型通过 AutomationFactory 与 OneNote 通信,但我无法让应用程序的GetHierarchy()方法工作。我知道我在 OneNote 中有数据,因为我可以从 .NET 应用程序调用该方法并从中取回数据。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”参数的调用方法引发异常:“无法将调用的参数转换为...”

顺便说一句,我不确定你1GetHierarchy调用中要做什么 - 那是指向将用所选HierarchyScope枚举的 XML 填充的字符串的指针。它应该是一个字符串out变量,而不是一个整数 - 但无论如何,由于错误,它仍然无法在 SL4 中工作。

于 2011-05-01T09:13:54.357 回答