Método de inicialização personalizado de associação
-
04-07-2019 - |
Pergunta
Ao substituir o associação e chamá -lo diretamente, existe uma maneira de preencher o parâmetro NameValuECollection Config do método Initialize sem olhar manualmente através do arquivo de configuração para as configurações?
Obviamente, essa inicialização está sendo chamada pelo ASP.NET e a configuração está sendo preenchida em algum lugar. Eu implementei meu próprio associação e funciona bem através da construção nos controles. Gostaria de criar uma nova instância do meu provedor e fazer uma chamada diretamente, mas eu realmente não quero analisar o .config para o associação, é o nome da string de conexão e depois a sequência de conexão se já estiver sendo feita em algum lugar em algum lugar .
Solução
TVANFOSSON- Obrigado pela ajuda. (Se eu tivesse os 15 pontos necessários, votaria em você)
Do seu link, pude descobrir isso. Acontece que o segundo parâmetro para o processo inicializou foi a lista de parâmetros do provedor e poderia ser alcançado da seguinte maneira:
string configPath = "~/web.config";
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
MembershipSection section = (MembershipSection)config.GetSection("system.web/membership");
ProviderSettingsCollection settings = section.Providers;
NameValueCollection membershipParams = settings[section.DefaultProvider].Parameters;
Initialize(section.DefaultProvider, membershipParams);
Outras dicas
Não sei por que você deseja criar um novo, mas se você o criar, precisará ler a configuração da web e obter os valores para passar para inicializar (), pois isso é feito fora da classe. Tenho certeza, porém, que já existe um manipulador de seção para esta seção, por isso deve ser apenas uma questão de fazer:
MembershipSection section = WebConfigurationManager.GetSection("membership");
Em seguida, encontre seu provedor e acessando suas propriedades para construir a NameValuEcollection. Eu não acho que você terá que escrever qualquer código para analisar a seção de configuração.
Aqui está o Associação Documentação no MSDN. Faça uma broca a partir daí.
De qualquer forma, você não deve criar uma instância do associação. Está criando e inicializando a infraestrutura padrão do ASP.NET. Você pode acessar a ele por código como este:
var CustomEmMbership = associação.provider;