Pergunta

Eu estou usando a classe Configurações no meu projeto .NET. Eu aviso no editor que apenas certos tipos estão disponíveis para serem usados ??como tipos para as propriedades individuais na classe Configurações. E se eu queria ter uma propriedade que era uma enumeração do meu código ou uma coleção genérica por exemplo? Como eu poderia implementar isso?

Eu estou supondo que eu posso fazer isso em um arquivo separado usando o mecanismo de classe parcial (uma vez que Configurações já está definido como uma classe parcial), mas eu quero ver se alguém concorda com isso e se pode haver uma maneira de fazê-lo dentro do editor.

Foi útil?

Solução

Crie um novo arquivo "Configurações" para adicionar um tipo / user-definido complexo de escolha. Aqui é um how-to para um Enum.

Passo 1 . Criar um arquivo de configurações

text alt

Passo 2 . Navegar para o tipo

text alt

Passo 3 . Selecione o tipo (Namespace.TypeName)

text alt

Passo 4 . Ta da - Feito

text alt

Outras dicas

Para obter uma classe personalizada para mostrar nessa lista, certifique-se que tem um construtor padrão como um dos que está construindo opções. Eu aprendi isso da maneira mais difícil

Para responder a comentário / pergunta de Jeffrey sobre se as listas genéricas são possíveis em um arquivo de configurações, a resposta é sim. Você apenas tem que editar o arquivo xml definições manualmente. Por exemplo, se eu tenho a seguinte classe:

public class UrlAlias
{
    public string Name { get; set; }
    public string BaseUrl { get; set; }
}

Eu posso criar uma lista destas com o botão direito no meu arquivo de configurações e selecione Abrir com ...

Em seguida, escolha XML / editor de texto, e definir o "tipo" valor para o nome de classe totalmente qualificado, ou seja:

Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]"

O xml configurações completas seria parecido com:

<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings">
 <Profiles />
  <Settings>
    <Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User">
      <Value Profile="(Default)"></Value>
    </Setting>
  </Settings>
</SettingsFile>

Uma vez que você fizer isso, você deve ter uma lista devidamente configurado do costume objeto de configurações que você criou.

Fazê-lo em um arquivo separado, como parte de uma classe parcial é totalmente aceitável.

Se você quer ser capaz de preencher objetos complexos através de arquivos de configuração, gostaria de sugerir usando algum Dependency Injection Framework S.A Spring.Net.

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