es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ensamblaje adicional del enrutador desde el directorio.

¿Es posible agregar ensamblados adicionales que incluyan componentes enrutables escaneando un directorio en busca de un archivo .dll de una biblioteca de clases Razor?

El RCL no puede ser referenciado en la solución como una referencia de proyecto ni como un paquete NuGet.

Lo que he intentado:

App.razor
“`
@using System.Reflection
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.WebAssembly.Services

<router appassembly="@typeof(Program).Assembly" additionalassemblies="@ExtraAssemblies">
<found>
//…
</found>
<notfound>
//…
</notfound>
</router>

@code{
private static List<assembly> additionalAssemblies;
public List<assembly> ExtraAssemblies
{
get
{
if(additionalAssemblies is null)
{
// Escanear un directorio en busca de un archivo .dll para ser incluido
var assembly = Assembly.LoadFile("mypath");
additionalAssemblies.Add(assembly);
return additionalAssemblies;
}
}
}
}
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible agregar ensamblados adicionales que incluyan componentes enrutables escaneando un directorio en busca de un archivo .dll de una biblioteca de clases Razor. Esto se puede lograr utilizando el parámetro AdditionalAssemblies del componente Router en un proyecto Blazor WebAssembly.

    En el código de ejemplo proporcionado, se utiliza la propiedad ExtraAssemblies para escanear un directorio en busca de un archivo .dll que se incluirá como ensamblado adicional. El método Assembly.LoadFile se utiliza para cargar el archivo .dll y agregarlo a la lista additionalAssemblies. Esta lista se devuelve como valor de la propiedad ExtraAssemblies, que luego se pasa al componente Router como valor del parámetro AdditionalAssemblies.

    Es importante tener en cuenta que la biblioteca de clases Razor no se puede hacer referencia en la solución como una referencia de proyecto o como un paquete NuGet. Por lo tanto, escanear un directorio en busca de un archivo .dll puede ser la única manera de incluir un ensamblado adicional con componentes enrutables.

Comments are closed.