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 .

Foi útil?

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;

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