首页 新闻 会员 周边

vs2010运行错误

0
悬赏园豆:5 [待解决问题]

我做的程序本来已经完成了,运行时却出现了问题:

 

“/TestProject.Web”应用程序中的服务器错误。

Unable to load embedded resource from assembly "Maps.User.xml,TestProject.Dao".

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: IBatisNet.Common.Exceptions.ConfigurationException: Unable to load embedded resource from assembly "Maps.User.xml,TestProject.Dao".

源错误:

行 49: public static T Get<T>()行 50: {行 51: return (T)GetContainer()[typeof(T)];行 52: }行 53: 

请帮我看看为什么会出现这个错误

 

 

问题补充: 将“生成操作”改为"嵌入的资源"后又出现了问题: “/TestProject.Web”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 源错误: 行 49: public static T Get<T>() 行 50: { 行 51: return (T)GetContainer()[typeof(T)]; 行 52: } 行 53 请问这个又是什么回事
whbchrish的主页 whbchrish | 初学一级 | 园豆:159
提问于:2010-08-27 08:42
< >
分享
所有回答(2)
0

就是说你的 TestProject.Dao.dll 中有个 xml 文件叫着 Maps.User,在编译的时候,该 Maps.User.xml 文件应该作为嵌入式资源编译进了 TestProject.Dao.dll,但是,实际上你并没有把 Maps.User.xml 文件作为嵌入式资源编译进 TestProject.Dao.dll.

所以,在你原来的 TestProject.Dao 项目解决方案中,选中 Maps.User.xml 文件,查看"属性"窗口,将"生成操作"改为"嵌入的资源"(Embedded Resource).

Launcher | 园豆:45045 (高人七级) | 2010-08-27 08:55
将“生成操作”改为"嵌入的资源"后又出现了问题: “/TestProject.Web”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 源错误: 行 49: public static T Get<T>() 行 50: { 行 51: return (T)GetContainer()[typeof(T)]; 行 52: } 行 53
支持(0) 反对(0) whbchrish | 园豆:159 (初学一级) | 2010-08-27 09:28
@whbchrish: 你的 GetContainer() 返回了 null,不知道你用的啥IOC,该方法应该是从你的 Maps.User.xml 读取一个配置好的 Container .你可以检查下是否读取到了,或你的 Maps.User.xml 中有没有配置 Container.
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-08-27 09:52
0

后面错误时空引用呀,GetContainer()有问题呀,把代码贴出来看看

jowo | 园豆:2834 (老鸟四级) | 2010-08-27 09:47
我已经添加引用了呀: using Castle.Windsor; using Castle.Windsor.Configuration.Interpreters; namespace TestProject.IoC { /// <summary> /// IoC容器 /// </summary> public class IoCContainer { private IWindsorContainer _container; private static IoCContainer _instance = null; private static readonly object _lock = new object(); private IoCContainer() { //_container = new WindsorContainer(new XmlInterpreter("Castle.config")); _container = new WindsorContainer(new XmlInterpreter()); } private static IoCContainer Instance { get { lock (_lock) { if (_instance == null) _instance = new IoCContainer(); return _instance; } } } /// <summary> /// 取IoC容器 /// </summary> /// <returns></returns> public static IWindsorContainer GetContainer() { return Instance._container; } /// <summary> /// 从IoC中取注册实例 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T Get<T>() { return (T)GetContainer()[typeof(T)]; } /// <summary> /// 是否注册过某个实例 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static bool HasComponent<T>() { return Instance._container.Kernel.HasComponent(typeof(T)); } } }
支持(0) 反对(0) whbchrish | 园豆:159 (初学一级) | 2010-08-27 09:55
@whbchrish:你能跟踪下执行流程吗?看看到底是在哪儿实例没有创建成,比如这句: _container = new WindsorContainer(new XmlInterpreter("Castle.config") _container 创建成功没有? 你看这篇文章:http://terrylee.cnblogs.com/archive/2006/04/17/377018.html 他是这样创建容器的: IWindsorContainer container = new WindsorContainer( new XmlInterpreter("http://www.cnblogs.com/BasicUsage.xml") );
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-08-27 11:05
我遇到的问题解决了
支持(0) 反对(0) whbchrish | 园豆:159 (初学一级) | 2010-08-30 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册