Невозможно загрузить сборку в сильно подписанном коде silverlight - PullRequest
1 голос
/ 10 октября 2011

В приложении Silverlight 4 я пытаюсь создать экземпляр объекта, тип которого неизвестен до времени выполнения, используя этот код:

Assembly assembly = Assembly.LoadFrom("Name.Of.Some.dll");
Type type = assembly.GetType("Full.NameSpace.And.ClassName");
object o = Activator.CreateInstance(type);

Однако результаты вызова Assembly.LoadFrom ()в исключении:

{System.MethodAccessException: Attempt by security transparent method 'Mosaic.Layers.LayerParamChangeHandlerInfo.CreateParamHandler()' to access security critical method 'System.Reflection.Assembly.LoadFrom(System.String)' failed.

Я немного погуглил для ошибки, но я все еще не могу понять, почему я получаю исключение (что-то, связанное с тем, что сборки имеют жесткую подпись, я считаю) и, что более важно, как решить проблему и создать свой объект.

1 Ответ

2 голосов
/ 10 октября 2011

Вы не можете вызывать этот метод из своего собственного кода, потому что его безопасность критична и ограничена для использования только внутри .NET Framework.

Не используйте этот элемент в вашем приложении. Если вы это сделаете, ваш код вызовет исключение MethodAccessException. Этот член критичен для безопасности, что ограничивает его внутреннее использование библиотекой классов .NET Framework for Silverlight.

Единственный доступный метод загрузки для сборок в Silverlight - это Assembly.Load (строка) . Если вы хотите динамически загружать сборки, взгляните на этот подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...