Existe uma maneira de percorrer todos os recursos em um .resx
arquivo em c #?
c#
.net
embedded-resource
np.
fonte
fonte
Respostas:
Você sempre deve usar o gerenciador de recursos e não ler arquivos diretamente para garantir que a globalização seja levada em consideração.
...
fonte
ResourceManager MyResourceClass = new ResourceManager("Resources.ResourceFileName", System.Reflection.Assembly.Load("App_GlobalResources"));
Blogue sobre isso no meu blog :) A versão curta é: para encontrar os nomes completos dos recursos (a menos que você já os conheça):
Para usar todos eles para alguma coisa:
Para usar recursos em outros assemblies que não o de execução, você apenas obteria um objeto de assembly diferente usando alguns dos outros métodos estáticos da
Assembly
classe. Espero que ajude :)fonte
Use a classe ResXResourceReader
fonte
veja o link: exemplo da microsoft
fonte
System.Windows.Forms
montagem e não é adicionada automaticamente se você estiver usando um aplicativo MVCNo minuto em que você adiciona um arquivo .RESX ao seu projeto, o Visual Studio cria um Designer.cs com o mesmo nome, criando uma classe para você com todos os itens do recurso como propriedades estáticas. Você pode ver todos os nomes do recurso ao digitar o ponto no editor após digitar o nome do arquivo de recurso.
Como alternativa, você pode usar a reflexão para percorrer esses nomes.
Obviamente, esse método só pode ser usado quando o arquivo RESX estiver no escopo do conjunto ou projeto atual. Caso contrário, use o método fornecido por "pulso".
A vantagem desse método é que você chama as propriedades reais que foram fornecidas para você, levando em consideração qualquer localização, se desejar. No entanto, é bastante redundante, pois normalmente você deve usar o método direto seguro de tipo para chamar as propriedades de seus recursos.
fonte
Você pode usar o ResourceManager.GetResourceSet .
fonte
Se você deseja usar o LINQ, use
resourceSet.OfType<DictionaryEntry>()
. O uso do LINQ permite, por exemplo, selecionar recursos com base em seu índice (int) em vez da chave (string):fonte
Com o pacote
System.Resources.ResourceManager
nuget (v4.3.0), oResourceSet
eResourceManager.GetResourceSet
não está disponível.Usando o
ResourceReader
, como sugerido nesta postagem: " C # - Não é possível obter uma string do ResourceManager (do assembly satélite) "Ainda é possível ler a chave / valores do arquivo de recurso.
fonte
Usando LINQ to SQL :
fonte
Loop de leitura simples use este código
fonte