/// <summary>
/// 数据库访问接口。
/// </summary>
public static Interfaces.Data.IDataAccess CreateInstance()
{
string connectionString = Reservoir.Configuration.GeneralOperator.Get("ConnectionString");
string providerType = Reservoir.Configuration.GeneralOperator.Get("ProviderType"); Interfaces.Data.IDataAccessFactory dataAccessFactory = (Interfaces.Data.IDataAccessFactory)Reservoir.Plugin.PluginOperator.Get("DataAccessFactory").CreateInstance();
return dataAccessFactory.CreateDataAccess(connectionString, providerType);
}这句:
return dataAccessFactory.CreateDataAccess(connectionString, providerType);

解决方案 »

  1.   

    “/Reservoir.Web”应用程序中的服务器错误。
    --------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 16: 
    行 17:  Interfaces.Data.IDataAccessFactory dataAccessFactory = (Interfaces.Data.IDataAccessFactory)Reservoir.Plugin.PluginOperator.Get("DataAccessFactory").CreateInstance();
    行 18:  return dataAccessFactory.CreateDataAccess(connectionString, providerType);
    行 19:  }
    行 20:  }
     源文件: d:\web\reservoir.logic\container\dataaccess.cs    行: 18 堆栈跟踪: 
    [NullReferenceException: 未将对象引用设置到对象的实例。]
       Reservoir.Logic.Container.DataAccess.CreateInstance() in d:\web\reservoir.logic\container\dataaccess.cs:18
       Reservoir.Logic.Container.NewsCategory.CreateOperator() in d:\web\reservoir.logic\container\newscategory.cs:28
       Reservoir.Web.WebForm1..ctor() in d:\web\reservoir.web\webform1.aspx.cs:21
       ASP.WebForm1_aspx..ctor() in c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\reservoir.web\ed4d0d83\10b44cec\1ocuembo.0.cs:0[TargetInvocationException: 调用的目标发生了异常。]
       System.RuntimeType.CreateInstanceImpl(Boolean publicOnly) +0
       System.Activator.CreateInstance(Type type, Boolean nonPublic) +66
       System.Activator.CreateInstance(Type type) +7
       System.Web.HttpRuntime.CreatePublicInstance(Type type)
       System.Web.UI.TemplateControlParser.GetCompiledInstance(String virtualPath, String inputFile, HttpContext context)[HttpException (0x80004005): 未能创建类型为“ASP.WebForm1_aspx”的页。]
       System.Web.UI.TemplateControlParser.GetCompiledInstance(String virtualPath, String inputFile, HttpContext context)
       System.Web.UI.PageParser.GetCompiledPageInstanceInternal(String virtualPath, String inputFile, HttpContext context)
       System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String path)
       System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig)
       System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 
      

  2.   

    断点一下看dataAccessFactory是否为空?
      

  3.   

    楼上的.dataAccessFactory  的确为空. 然后怎么跟踪呢??
      

  4.   

    检查你的代码,
    Interfaces.Data.IDataAccessFactory dataAccessFactory = (Interfaces.Data.IDataAccessFactory)Reservoir.Plugin.PluginOperator.Get("DataAccessFactory").CreateInstance();
    dataAccessFactory 返回为null,所以调用
    return dataAccessFactory.CreateDataAccess(connectionString, providerType);出错。
      

  5.   

    你是不是调用别人的组件,那你只有要别人的组件代码才知道的,或是要那个组件的人告诉你怎么用就可以了。如果没办法看到你用Reflect试试看看这个组件的源代码就知道了。
      

  6.   

    用Reflect把你用的那个DLL反编译过来看一下