从Silverlight应用程序调用OneNote GetHierarchy()

时间:2011-04-28 04:36:35

标签: silverlight silverlight-4.0 onenote

我有一个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);            
        }
    }
}

1 个答案:

答案 0 :(得分:1)

这是一个已知的错误,使用无法在AutomationFactory中使用'out'的方法调用 - 请参阅SL4 - AutomationFactory - Call method with 'out' parameters raise exception: 'Could not convert an argument for the call to...'

BTW,我不确定你在1调用中使用GetHierarchy尝试做什么 - 这是指向将填充所选{的XML的字符串的指针{1}}枚举。它应该是一个字符串HierarchyScope变量,而不是一个整数 - 但无论如何,由于该错误,它仍然无法在SL4中运行。