Ошибка при создании объекта PlayListMember из API Java - C # ok Ошибка F # - PullRequest
2 голосов
/ 03 июля 2011

Я использую .NET SDK из http://code.google.com/p/google-gdata/downloads/detail?name=YouTube_SDK_1.8.0.0.msi

В интерактивной версии F # 4.0.40219.1 Я просто пытаюсь создать новый объект PlayListMember, но получаю ошибку ссылки на объект:

#r @"C:\Program Files (x86)\Google\Google YouTube SDK for .NET\Redist\Google.GData.Client.dll";;
#r @"C:\Program Files (x86)\Google\Google YouTube SDK for .NET\Redist\Google.GData.Extensions.dll";;
#r @"C:\Program Files (x86)\Google\Google YouTube SDK for .NET\Redist\Google.GData.YouTube.dll";;

open Google.GData.Client;;
open Google.GData.Extensions;;
open Google.GData.YouTube;;
open Google.YouTube;;

let pmm = new PlayListMember();;

error FS0193: internal error: Object reference not set to an instance of an object.

Если я выполняю эквивланты в консольном приложении C # или F #, проблем не возникает.Так что, похоже, возникает проблема с использованием этого в интерактиве F #.

Также я могу создать PlayList в F # и использовать API для успешного создания списка на YouTube.Но просто создать новый объект PlayListMember не удается.

Как я могу отладить эту проблему?

Обновление 1

Загрузил SDK GData, который также включает в себяYouTube SDK отсюда http://code.google.com/p/google-gdata/downloads/detail?name=Google_Data_API_Setup_1.8.0.0.msi&can=2&q=

Опробовал вышеуказанный подход с новыми сборками:

#r @"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Client.dll";;
#r @"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Extensions.dll";;
#r @"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.YouTube.dll";;

open Google.GData.Client;;
open Google.GData.Extensions;;
open Google.GData.YouTube;;
open Google.YouTube;;

let pm = new PlayListMember();;

error FS0193: API restriction: The assembly 'file:///C:\Program Files (x86)\Google\Google YouTube SDK for .NET\Redist\Google.GData.YouTube.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.

Эта ошибка возникает после полной перезагрузки и открытия VS2010 только с помощью интерактивного интерфейса F #.Я не уверен, как сборка в Google YouTube SDK для .NET была загружена, когда ссылки были на Google Data API SDK .

Обновление2

Получил последний код из http://code.google.com/p/google-gdata/source/checkout,, перекомпилированный для .NET 4, удалил как пакеты API YouTube и GData, так и при загрузке кода с помощью пользовательских сборок отладки из F # Interactive am.получение ссылки на объект при создании объекта PlayListMember.

Обновление 3

После отладки PlayListMember с источником я не могу понять, что не так.PlayListMember расширяется Video расширяется Entry.Entry единственный с конструктором, и он пустой.Откуда же тогда это исключение ...

1 Ответ

0 голосов
/ 03 июля 2011

Как внутренняя ошибка, это почти наверняка указывает на ошибку компилятора. Я бы порекомендовал по электронной почте fsbugs@microsoft.com.

...