Pergunta

Estou trabalhando na localização de um aplicativo asp.net que consiste em vários projetos.

Para isso, existem algumas strings que são utilizadas em vários desses projetos.Naturalmente, eu preferiria ter apenas uma cópia do arquivo de recursos em cada projeto.

Como os arquivos de recursos não possuem um namespace (pelo menos até onde eu sei), eles não podem ser acessados ​​como classes normais.

Existe alguma forma de referenciar arquivos resx em outro projeto, dentro da mesma solução?

Foi útil?

Solução

Você pode simplesmente criar um projeto de biblioteca de classes, adicionar um arquivo de recurso nele e, em seguida, consultar esse assembly para obter recursos comuns.

Outras dicas

Eu usei essa solução antes para compartilhar um arquivo assembley info.cs em todos os projetos em uma solução que presumo que o mesmo funcionaria para um arquivo de recursos.

Crie um arquivo vinculado para cada biblioteca de projeto/classe individual.Haverá apenas uma cópia e cada projeto terá uma referência ao código através de um arquivo vinculado em tempo de compilação.É uma solução muito elegante para resolver recursos não públicos compartilhados sem duplicar código.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>

adicione esse código ao grupo de itens completos de um arquivo csproj e substitua os caminhos pelos caminhos reais para os arquivos resx e você poderá abri-los.

Depois de fazer isso para um arquivo de projeto, você poderá copiar e colar o arquivo vinculado em outros projetos sem precisar hackear o csproj.

Alguns conselhos úteis sobre como lidar com uma situação como esta estão disponíveis aqui:

http://www.codeproject.com/KB/dotnet/Localization.aspx

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