Это довольно специфический вопрос, но мне нужно загрузить библиотеку приложения Silverlight в мое веб-приложение ASP.NET MVC, чтобы обдумать типы и создать список для выбора пользователя. Цель приложения - позволить пользователям загружать свои собственные библиотеки и тестировать их в «изолированной» среде.
В любом случае, после некоторых трудностей, я достиг загрузки файлов в ASP.NET MVC. Теперь, когда я пытаюсь загрузить загруженную сборку для отражения, я получаю следующую ошибку:
{"Cannot resolve dependency to assembly 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.":"System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"}
Я добавил указанную сборку в качестве ссылки в проекте, но безрезультатно.
Код для отображения сборки выглядит следующим образом:
Assembly a = Assembly.ReflectionOnlyLoad(_toolBytecode);
foreach (Type t in a.GetTypes())
{
if (typeof(BoardTool).IsAssignableFrom(t))
{
if (t.IsSubclassOf(typeof(NetworkTool)))
{
// Loop through each attribute of the class
foreach (object attr in t.GetCustomAttributes(false))
// Check if the attribute is the one we want
if (attr is NetworkToolIDAttribute)
{
ReflectedTool rt = new ReflectedTool();
rt.ToolID = ((NetworkToolIDAttribute)attr).ToolID;
rt.ToolName = t.Name;
_tools.Add(rt);
}
}
else
{
ReflectedTool rt = new ReflectedTool();
rt.ToolID = Guid.Empty;
rt.ToolName = t.Name;
_tools.Add(rt);
}
}
}
Любая помощь будет признательна, или, если вы знаете другой способ сделать это, это тоже было бы здорово. Если все остальное не поможет, я, вероятно, в конечном итоге напишу средство запуска / контейнер песочницы как быстрое приложение Silverlight.
Заранее спасибо.