Как получить ресурсы из файла XAML в динамически загруженном DLLC#

Место общения программистов C#
Ответить
Anonymous
 Как получить ресурсы из файла XAML в динамически загруженном DLL

Сообщение Anonymous »

У меня есть DLL, который содержит пользовательское управление Avalonia, его стиль и ресурсы по умолчанию.

Код: Выделить всё

var basePath = Directory.GetCurrentDirectory();
var dll = Assembly.LoadFile(Path.Combine(basePath, "Components.dll"));

foreach (var type in dll.GetExportedTypes())
{
if (type.IsAssignableTo(typeof(IComponentPlugin)))
{
var instance = Activator.CreateInstance(type);
if (instance is IComponentPlugin plugin)
{
// Do Stuff
}
}
}
Теперь я хочу добавить стиль и ресурсы по умолчанию и ресурсы в мое приложение , и это как-то очень сложно.
я могу получить styleinclude и resourceinclude из моего DLL, путем ICOMPONENTPLUGIN :
public ResourceInclude? GetResources()
{
var uri = new Uri("avares://DefaultResources.axaml");
return new ResourceInclude(uri) { Source = uri };
}

public StyleInclude? GetStyle()
{
var uri = new Uri("avares://DefaultStyle.axaml");
return new StyleInclude(uri) { Source = uri };
}

Но, когда я пытаюсь добавить его в ресурсы моего приложения , avaloniaxamloader жалуется. «Нет предварительного сборочного XAML для Avares: //defaultresources.axaml/ (baseuri: avares: //defaultresources.axaml/)».
Я пытался получить содержимое файла и загружать его с помощью avaloniaruntimexamloader from avalonia.markup.markup.markup.markup.markup.markup.markup.markup. Пакет: < /p>

Код: Выделить всё

public Stream? GetResources()
{
return AssetLoader.Open(new Uri("avares://DefaultResources.axaml"));
}
Но тогда я получаю filenotfoundexception «resource avares: //defaultresources.axaml/ не может быть найден». Я также пытался с "Avares: //components/defaultresources.axaml" безрезультатно.>

Подробнее здесь: https://stackoverflow.com/questions/793 ... loaded-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»