我最近创建了一个接口层,以区分DataAccessProvider和我们的业务逻辑层。通过这种方法,我们可以随时通过更改Web / App.Config中的值来更改对DataAccessProvider的选择。(如果需要,可以提供更多详细信息)。
无论如何,为了做到这一点,我们使用反射来完成我们可以使用的DataProvider类。
/// <summary>
/// The constructor will create a new provider with the use of reflection.
/// If the assembly could not be loaded an AssemblyNotFoundException will be thrown.
/// </summary>
public DataAccessProviderFactory()
{
string providerName = ConfigurationManager.AppSettings["DataProvider"];
string providerFactoryName = ConfigurationManager.AppSettings["DataProviderFactory"];
try
{
activeProvider = Assembly.Load(providerName);
activeDataProviderFactory = (IDataProviderFactory)activeProvider.CreateInstance(providerFactoryName);
}
catch
{
throw new AssemblyNotFoundException();
}
}
但是现在我想知道反射的速度有多慢?