sharpmap教程.Layers.GdalRasterLayer的类型初始值设定项引发异常 请问该怎么解决?

您现在的位置:&>&&>&&>&
育龙网&WWW.CHINA-B.C0M&& 日&&来源:互联网
核心提示:
运行时错误类型初始值设定项引发异常。症状描述:程序连接一台MQ服务器(其实就是个台式机,每天下班关机),如果服务器没有开,程序就
运行时错误类型初始值设定项引发异常。症状描述:程序连接一台MQ服务器(其实就是个台式机,每天下班关机),如果服务器没有开,程序就会抛出异常。以前编译时老是忘开服务器,经常会出现MQ失败的异常。这次我原本以为也是这个异常,没想到出来的是类型初始值设定项引发异常。的错误为什么会和以往不一样呢?临下班时,把一个类的单件模式做了重构,使用了静态初始化方法。代码private static readonly WorkerManager instance = new WorkerManager();static WorkerManager() { }private WorkerManager(){Initialize();}public static WorkerManager Instance{get { }}MQ的语句在Initialize方法里,问题就应该出现在这里了。解决方法:当然,把MQ服务器打开问题就解决了,但是究竟为什么会出现类型初始值设定项引发异常呢?原来类的静态成员在初始化时如果出现异常,类的其它静态成员或对该类进行初始化都会抛出这个异常。请看下面的代码:public class Test{public static Foo Test1 = new Foo();public static string Test2 = Test2;public string Test3 = Test3;public Test() { }}public class Foo{public Foo(){throw new Exception();}}在Test.Test2以及new Test()时都会抛出这个异常。我的代码中,由于Initialize()出现异常,instance实例化失败,所以Instance时就抛出了这个异常。总结:如果类中存在静态成员,应确保其初始化时不会抛出异常,否则会影响对该类的正常。
相关热词搜索:
-- 本站部分信息来源于互联网,不代表本站观点或立场,如有侵权,请来电告知,我们将及时处理2265人阅读
TypeInitializationExeption异常
TypeInitializationExeption异常在MSDN中说明为:当类初始值设定项不能初始化类型时,将创建TypeInitializationExeption并向其传递由该类型的类初始值设定项引发的异常引用。
这句话的意思是:
当引用一个含有静态成员的类时,如果给静态成员初始化时,发生异常,那么就会产生此异常。
public class ClassName
&&&&& public static int m = int.Parse("d");
&&&&& public ClassName
&&&&& {&&&&&& }
&&&&&&&.......................}
当第一次引用此类时,语句public static int m = int.Parse("d"); 就会被执行,此时就会报出&TypeInitializationExeption类型的异常。
由这个类子可以得出几点结论:
1. .net 里面 类中静态成员总是在此类被第一次引用时被定义,这个定义比此类的构造函数要更早执行。
2. 如果静态成员初始化时,出现异常,同时也没捕获,那么系统会创建一个TypeInitializationExeption类型异常抛出。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:104705次
积分:1714
积分:1714
排名:第10793名
原创:55篇
转载:59篇
评论:35条
(8)(3)(1)(2)(6)(1)(18)(3)(5)(10)(3)(4)(4)(1)(1)(1)(3)(1)(1)(9)(1)(13)(2)(5)(8)visual studio能正常链接数据库,使用BindingSource控件,设置DataSource属性,添加项目数据源时,出现了问题。
&在数据源配置向导&对话框的倒数第二步,出现了一个异常,原文如下&从数据库检索信息时发生错误:&Microsoft.VisualStudio.DataDesign.SyncDesigner.SyncFacade.SyncTableConfigManager& 的类型初始值设定项引发异常。&
如何解决?请高人指点,多谢。
【解答】:
卸载1) Microsoft SQL Server Compact 3.5 Service Pack 1 2) Synchronization Services for ADO.NET version 1.0 Service Pack 1 for Windows Desktop然后重新安装,下载地址:/downloads/details.aspx?familyid=FCE9ABBF-F807-45D6-A457-ABF&displaylang=zh-cn /downloads/details.aspx?familyid=DC614AEE-7E1C--3A6CE53384D9&displaylang=zh-cn
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:349779次
积分:5920
积分:5920
排名:第1555名
原创:250篇
转载:75篇
评论:164条
(1)(1)(1)(1)(2)(1)(1)(1)(1)(1)(1)(1)(1)(3)(3)(1)(1)(1)(8)(1)(29)(11)(5)(5)(18)(41)(17)(1)(17)(24)(4)(1)(2)(2)(21)(23)(50)(20)(4)求助高手:NHibernate.Cfg.Configuration的类型初始值设定项引发异常。
[问题点数:40分,无满意结帖,结帖人msy0850]
求助高手:NHibernate.Cfg.Configuration的类型初始值设定项引发异常。
[问题点数:40分,无满意结帖,结帖人msy0850]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。C# DAL.SQLHelper的类型初始值设定项引发异常-中国学网-中国IT综合门户网站
> C# DAL.SQLHelper的类型初始值设定项引发异常
C# DAL.SQLHelper的类型初始值设定项引发异常
转载 编辑:李强
为了帮助网友解决“C# DAL.SQLHelper的类型初”相关的问题,中国学网通过互联网对“C# DAL.SQLHelper的类型初”相关的解决方案进行了整理,用户详细问题包括:C#配置文件&?xml&version="1.0"?&&configuration&&&&connectionStrings&&&&&&add&connectionString="strCon"&name="Data&Source=SQL2008R2;Initial&Catalog=HotelWebDB;User&ID=Password=mima"/&&&&/connectionStrings&&/configuration&读取配置文件代码&&private&static&string&ConnectionString&=&System.Configuration.ConfigurationManager.ConnectionStrings["strCon"].ToString();运行就报DAL.SQLHelper的类型初始值设定项引发异常,谁遇到过解决的,具体解决方案如下:解决方案1:&connectionStrings&&&&&&add&name="ConnectionString"&connectionString="Server=.;Database=SUid=Pwd=123;Max&Pool&Size=512;"&providerName="System.Data.SqlClient"/&&&&/connectionStrings&解决方案2:最好能把异常原始信息贴出来,lz&这样描述不好确定问题在哪里解决方案3:其中数据源改成Data&Source=.解决方案4:Data&Source=SQL2008R2&改成&Data&Source=.SQL2008R2&试试解决方案5:可能你的“类型初始值设定项”不仅仅是这个给ConnectionString变量赋值的代码,还有别的。看看你有没有其它的static变量声明中赋值的代码,以及有没有static&SQLHelper(){....}代码。vs调试器无法调试(以及根本无法正确给你报告)“类型初始值设定”代码中的异常位置信息。因此你可以尽量避免“类型初始值设定”。例如写:private&static&string&_ConnectionString&=&private&static&string&ConnectionString{&&&&get{&&&&&&&&&&if(&_ConnectionString==null)&&&&&&&&&&&&&&&&&_ConnectionString&=&System.Configuration.ConfigurationManager.ConnectionStrings["strCon"];&&&&&&&&&&return&_ConnectionS&&&&}}这样,vs就能给你详尽的地报告异常错误位置和堆栈,并且支持调试。因为这个赋值语句不再是“类型初始值设定”中运行的代码了!当然你的这个赋值语句看起来不像是有问题,有问题的地方你可能根本没贴出来。根据这个原理,逐一地自己修改其它“类型初始值设定项”代码并且立刻调试运行,直到运行时vs调试器能够准确地给你显示异常堆栈位置为止。引用&1&楼&njw1028&的回复:&connectionStrings&&&&&&add&name="ConnectionString"&connectionString="Server=.;Database=SUid=Pwd=123;Max&Pool&Size=512;"&providerName="System.Data.SqlClient"/&&&&/connectionS……lz的代码&System.Configuration.ConfigurationManager.ConnectionStrings["strCon"]&根本用不到&providerName。引用&2&楼&ifcontinue&的回复:最好能把异常原始信息贴出来,lz&这样描述不好确定问题在哪里vs的调试期有点悲催,对于“类型初始设定项异常”根本没有更详细的异常信息抛出,而且也无法进入原代码去调试。解决方案6:引用&5&楼&sp1234&的回复:可能你的“类型初始值设定项”不仅仅是这个给ConnectionString变量赋值的代码,还有别的。看看你有没有其它的static变量声明中赋值的代码,以及有没有C#&code?1234static&SQLHelper(){....}代码。vs调试器无法调试(以及根本无法正确给你报告)“类型初始值设定”代码中的异常位置信息。因此你可以尽量避免“类型初始……测试直接给ConnectionString赋连接字符串不会出错,读取app.config就会抛出异常解决方案7:遇到同样的问题解决方案8:请问楼主解决了吗··我也遇到这样的问题·解决方案9:不从配置文件中获取连接字符串,直接写在程序里一般就可以,但性能牺牲了解决方案10:解决了没有啊,其实还是你的配置文件写的有错误,应该不是你自己写的吧!你看看你配置文件中的&add&name属性&,是这里错误了解决方案11:写反了。哈哈。还找错呢。解决方案12:请问有人解决了吗?还是解决不了啊!请大神指导!解决方案13:C#&CODESqlParameter[]的参数解决方案14:app.config位置有关系,你放在你该放的地方通过对数据库的索引,我们还为您准备了: StoreProcedure 是 CommandType 的一个枚举,表示当前SqlCommand的执行模式,是存储过程的意思。CommandType 位于 System.Data 下面。 下面的Result_Key是cmd的一...===========================================看你的代码 SQLHelper这个类你应该是单独的一个程序集(dll),你得先把SQLHelper的这个程序集添加的你现在的这个项目中 在你现在的项目中,在解决方案资源管理器中的项目...===========================================//查询出了所有父Id为0类别信息 DataTable dt = GetDataByParentId(0); //将父节点加载到... string sql = "select ID,Title from TableData where ParentID=@pid"; return SqlHelper.Exe...===========================================DBUtility只是约定俗成的一个分类法,不是必须的。一般里面都放SqlHelper这样的类在里面,由DAL中的数据访问类来调用。也就是说DBUtility包含的是访问数据库的通用代码。...===========================================这些参数应该都有注释说明,看是什么数据类型的就给什么样的值,因为没看注释,凭经验应该是对应用字符串的类型赋值增改删的T-SQL的语句===========================================Synchronized方法返回的是一个线程安全的Hashtable。继续分析源码,Synchronized方法返回的其实是一个SynchHashtable类型的实例。SynchHashtable是Hashtable的子类。S...=========================================== pk_guid-uniqueidentifier数据类型 name-nvarchar数据类型 这样出现一个包含文本... ', '" + txtName.Text + "')"; conn.Open(); SqlHelper.Ex...===========================================应该 这样写吧sqlHelper.SelectSql("Select * From books where booksid = " + textBox1.Text + " or booksname like '%"+texBbox2.Text+"%' ");=========================================== 先定义一个object 对象获取这个返回值,然后判断object对象是否为空 如果不为空再根据你所需要得到的结果强制类型转换 如: object obj = SQLHelper.ExecuteOracleScala...===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助}

我要回帖

更多关于 sharpmap教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信