我有一个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);
}
}
}
答案 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中运行。