错误内容:
创建控件时出错 —SiteImage1 
"BLL.SiteSetting"的类型初始化设定项引发异常请问一下这个是什么错误啊 在网上找了很多 很多都是说是下面这个问题: private static readonly string path = ConfigurationManager.AppSettings["WebDAL"]; 
public static ISiteSetting CreateSiteSetting() 

string className = path + ".SiteSetting"; 
return (ISiteSetting)Assembly.Load(path).CreateInstance(className); 

Web.config也已经写了 <appSettings file="MemberShip.config"> 
<add key="WebDAL" value="SQLServerDAL"/> 
</appSettings> 不知道哪错了,高手看一看 

解决方案 »

  1.   

    问题出在return (ISiteSetting)Assembly.Load(path).CreateInstance(className);这句...检查BLL.SiteSetting这个类的构造函数...这个构造函数里的代码抛出了异常...
      

  2.   

    className传进去的值对么???
      

  3.   


    这个类的代码是这样的using System;
    using System.Collections.Generic;
    using System.Text;
    using System.ComponentModel;
    using BookShop.Components;
    using BookShop.Components.IDAL;
    using System.Web;
    using System.Configuration;
    using System.Web.Configuration;
    using System.Net.Configuration;
    namespace BookShop.BLL
    {
        [DataObjectAttribute]
        public class SiteSetting
        {
            private static readonly ISiteSetting site = DataAccess.CreateSiteSetting();        private static readonly Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);        public static SiteSettings GetSiteSettings(string applicationName)    
            {
                return site.GetSiteSettings(applicationName);
            }        public static int SaveSiteSettings(SiteSettings siteSettings)
            {
                return site.SaveSiteSettings(siteSettings);
            }        public static void InsertSiteSettings(SiteSettings siteSettings)
            {
                site.InsertSiteSettings(siteSettings);
            }        public static SmtpSection getSMTP() 
            {
                SmtpSection section = (SmtpSection)config.GetSection("system.net/mailSettings/smtp");
                return section;
            }        public static void saveSMTP(string host,string userName,string Password,string From) 
            {
                getSMTP().Network.Host = host;
                getSMTP().Network.UserName = userName;
                getSMTP().Network.Password = Password;
                getSMTP().From = From;
                config.Save(ConfigurationSaveMode.Modified);
            }
        }
    }请问那错了????
      

  4.   

    1.检查DataAccess.CreateSiteSetting()这个方法的代码...2.检查HttpContext.Current是否为nulll,HttpContext.Current.Request是否为null...不要在static字段里用这种玩意儿,改成属性加上代码验证加上try catch捕获异常...
      

  5.   


    public {get;set;}  呵呵
      

  6.   

    在DAL中
    public class SiteSetting:ISiteSetting
    {}
      

  7.   


    public class SiteSetting
     
    需要继承Control类吗?public class SiteSetting :Control
    {
    ...
    }
      

  8.   

    刚刚测试的:
    错误信息:
    测试方法 TestProject1.SiteSettingTest.GetSiteSettingsTest 引发异常:  System.TypeInitializationException: “BookShop.BLL.SiteSetting”的类型初始值设定项引发异常。 --->  System.ArgumentNullException: 值不能为空。
    参数名: assemblyString。
    错误堆栈跟踪:
        在 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
       在 System.Reflection.Assembly.Load(String assemblyString)
       在 BookShop.Components.DataAccess.CreateSiteSetting() 位置 E:\text\Asp.net\BookShop\Components\DALFactory\DataAccess.cs:行号 29
       在 BookShop.BLL.SiteSetting..cctor() 位置 E:\text\Asp.net\BookShop\BLL\SiteSetting.cs:行号 16
     --- 内部异常堆栈跟踪的末尾 ---
        在 BookShop.BLL.SiteSetting.GetSiteSettings(String applicationName)
       在 TestProject1.SiteSettingTest.GetSiteSettingsTest() 位置 E:\text\Asp.net\BookShop\TestProject1\SiteSettingTest.cs:行号 85