Pergunta

Eu tenho a seguinte configuração não padrão (VS2008, .NET 3.5 SP1):

Há um principal projeto web chamado Mainsite e existem vários "plugin" projetos web com nomes diferentes.

Ao construir esses plugins eu tenho um passo de compilação personalizado que chama aspnet_compiler.exe e aspnet_merge.exe. Isso resulta em dois arquivos .dll - plugin_name .dll e plugin_name _deploy.dll. A primeira contém as classes codebehind, o segundo contém o código gerado a partir de arquivos .ascx.

Estas plugin DLL são copiados para a pasta /MainSite/bin/Plugins/. Em tempo de execução (inicialização do aplicativo) Mainsite aplicações procura nesta pasta e dinamicamente cargas todos os arquivos o DLL lá.

Todos os meus formulários estão nos plugins, em .ascx. A principal aplicação é apenas um esqueleto que carrega estes usercontrols .ascx como necessário.

E agora vem a necessidade de localização. Idealmente, eu gostaria de ter o seguinte:

  • Ao fazer os recursos no Visual Studio, deve haver um arquivo de recurso separado para cada forma (arquivo .ascx), de modo que é mais fácil para as pessoas a localizar as formas em paralelo.
  • O método agradável meta:resourcekey em .ascx é muito confortável para localizar controles;
  • O mecanismo de idioma do recurso automático / cultura fallback em .NET deve ser utilizável;
  • O resultado da compilação deve ser tal que os arquivos de todos os plugins podem ser copiados para a pasta /MainSite/bin/Plugins/. Se houver um arquivo .dll para cada idioma / cultura e eles hav para ser colocado em algumas subpastas específicas -. Isso é bom, desde que as DLLs de diferentes plugins não têm nomes colidindo

Algumas ideias sobre como conseguir isso?

Foi útil?

Solução

Aparentemente, é possível implementar provedores de recursos personalizados em .NET. Aqui é um artigo que contém links para vários outros artigos que explicam o todo o processo. Com efeito, você pega o valor de meta:resourcekey e obter o valor de onde você quiser. O artigo acima, por exemplo, armazena todas as informações de localização em um DB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top