Ошибки при создании подкласса WebPart в другой сборке

StackOverflow https://stackoverflow.com/questions/69164

  •  09-06-2019
  •  | 
  •  

Вопрос

Я пытаюсь создать подкласс WebPart, который будет выступать в качестве родительского для любых веб-частей, которые мы создаем.Если я создам пустой класс в том же проекте, я смогу наследовать от него, как и следовало ожидать.Однако, если я попытаюсь поместить его в другую сборку - ту, на которую я смог ссылаться и использовать классы, - я получу следующую ошибку:

Не удалось загрузить один или несколько запрошенных типов.Извлеките свойство LoaderExceptions для получения дополнительной информации.

Другая информация, которая может оказаться уместной (обычно я не являюсь разработчиком SharePoint):Я компилирую библиотеки DLL, ссылаюсь на них из проекта разработки и копирую их в каталог /bin экземпляра SharePoint.Все сборки подписаны.Я пытаюсь выполнить развертывание с помощью функции "развернуть" VS2008.

К сожалению, похоже, что это не специфичная для SharePoint ошибка, и я не уверен, как решить проблему.Кто-нибудь сталкивался с этим и есть ли у вас какие-либо предложения?

Это было полезно?

Решение

Хорошо, я нашел проблему.Задача упаковки по той или иной причине использует отражение.Когда он обнаруживает, что ваш класс наследуется от класса в другом домене, он пытается загрузить его с помощью отражения.Однако отражение не выполняет политику привязки, поэтому этот домен не загружается.

Авторы упаковочной программы могли бы решить эту проблему, добавив следующий код:

AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);
Assembly a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(filename);

static Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
    return System.Reflection.Assembly.ReflectionOnlyLoad(args.Name);
}

Однако, если вам нужно решение для вашего проекта, просто добавьте сборки в GAC, и он сможет разрешить их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top