Я создаю специальную библиотеку классов поставщика членства, которая определяет интерфейс поставщика данных для реализации моих веб-проектов.ASP.NET MVC2 Пользовательский поставщик членства с интерфейсом поставщика данных Проблема
У меня возникла проблема с созданием экземпляра класса, который реализует интерфейс.
Я добавил строку в свой web.config, чтобы вытащить тип поставщика данных, но он ищет этот тип внутри библиотеки членства (но он определен в моем веб-проекте).
public class MvcRoleProvider : RoleProvider
{
public string ConnectionString { get; set; }
private IDataProvider _dataProvider;
public override void Initialize(string name, NameValueCollection config)
{
var dataProviderType = config["dataProviderType"];
ConnectionString = ConfigurationManager.AppSettings[config["connectionStringName"]];
if (!string.IsNullOrEmpty(dataProviderType))
{
var type = Type.GetType(dataProviderType, true, true);
if (type != null && !string.IsNullOrEmpty(ConnectionString))
_dataProvider = (IDataProvider)Activator.CreateInstance(type, ConnectionString);
}
}
Web.config
<roleManager enabled="true" defaultProvider="WebTestRoleProvider">
<providers>
<clear />
<add name="WebTestRoleProvider"
applicationName="WebTest"
type="MvcMembership.MvcRoleProvider, MvcMembership"
dataProviderType="MyWebNameSpace.MyWebProject.DataProviderClassName"
connectionStringName="TheConnectionStringName" />
</providers>
</roleManager>
Ошибка:
Parser Error Message: Could not load type 'MyWebNameSpace.MyWebProject.DataProviderClassName' from assembly 'MvcMembership, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Могу ли я принимать правильный подход к этому? Если мне нужна общая пользовательская библиотека членства, не следует ли мне внедрять соответствующий поставщик данных в моих проектах в области веб-данных (в этом примере я делаю это в Интернете для тестирования)?