Вызов OneNote GetHierarchy () из приложения Silverlight - PullRequest
1 голос
/ 28 апреля 2011

У меня есть приложение Silverlight 4 вне браузера, с повышенным уровнем доверия. Я хотел бы использовать объектную модель OneNote 2010 для взаимодействия с OneNote с использованием AutomationFactory, и я не могу заставить работать метод приложения 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 Ответ

1 голос
/ 01 мая 2011

Это известная ошибка, при которой вызовы с методами, имеющими 'out', нельзя использовать в AutomationFactory - см. SL4 - AutomationFactory - вызов метода с параметрами 'out' вызывает исключение: «Не удалось преобразовать аргумент длявызов к ... '

Кстати, я не уверен, что вы пытаетесь сделать с 1 в вашем вызове GetHierarchy - это указатель на строку, которая будетзаполнено XML-кодом выбранного перечисления HierarchyScope.Это должна быть строковая переменная out, а не целое число, но, тем не менее, она не будет работать в SL4 из-за ошибки.

...