找不到资源的问题?奇怪?

时间:2022-12-14 20:05:50
我用C#写了一个控件,控件的大制定义如下:
namespace XUWEI.LibNetUI
{
/// <summary>
/// xwOptionView 的摘要说明。
/// </summary>
/// 
[GuidAttribute("80DB7A46-5946-4d67-AD1F-408E334F7179")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
public interface IOptionListView
{
int  AddPage(string PageName);
void AddPageItem(int pageIndex,string Title,string Value);

};

[GuidAttribute("B31BA317-A193-48e1-897E-6BC4D6B39AA0")]
public class xwOptionView : System.Windows.Forms.UserControl,IOptionListView
{
              private ImageList m_imageList;
.............
}
其中变量m_imageList 是我用ImageList控件生成的变量,并使用属性窗口添加了两个图标,结果
控件再使用中老是出错,出错原因为:
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(xwOptionView));

this.m_imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("m_imageList.ImageStream")));
this.m_imageList.TransparentColor = System.Drawing.Color.Transparent;


-----------------------------------------------------------------------------------
this.m_imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("m_imageList.ImageStream")));
程序执行到这句话的时候老是题是找不到资源?
不知道为什么?我用 reflector.exe 查看这个控件的dll可以看到这个m_imageList.ImageStream
为什么程序中会出错哪?

8 个解决方案

#1


没有人知道原因?????!!!!!!!!!!!!!!

#2


??????

#3


经过我的分析如果去掉接口定义的代码,资源就可以正确的定位了,为什么加上接口定义就不能找到资源了。
----
[GuidAttribute("80DB7A46-5946-4d67-AD1F-408E334F7179")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
public interface IOptionListView
{
int  AddPage(string PageName);
void AddPageItem(int pageIndex,string Title,string Value);

};

-------
去掉这部分代码就可以发现资源

#4


ildasm一下,看看你的resource的全称是什么?

一般的,是:XUWEI.LibNetUI.类名.资源名

#5


我查看了,资源的全名是LibNetUI.xwOptionView.resources
奇怪的就是,如果我不加接口定义,就可以找到资源,如果加上接口定义就找不到资源为什么?

#6


奇怪的是如果我定义了接口 IOptionListView  程序就生成了两个资源文件。一个是

LibNetUI.xwOptionView.resources
一个是XUWEI.LibNetUI.xwOptionView.resources
如果我不定义接口程序就生成一个资源文件
XUWEI.LibNetUI.xwOptionView.resources

#7


http://www.microsoft.com/china/MSDN/library/netFramework/netframework/Nfdnformswinforms02202003.mspx

#8


学习,并帮你up

#1


没有人知道原因?????!!!!!!!!!!!!!!

#2


??????

#3


经过我的分析如果去掉接口定义的代码,资源就可以正确的定位了,为什么加上接口定义就不能找到资源了。
----
[GuidAttribute("80DB7A46-5946-4d67-AD1F-408E334F7179")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
public interface IOptionListView
{
int  AddPage(string PageName);
void AddPageItem(int pageIndex,string Title,string Value);

};

-------
去掉这部分代码就可以发现资源

#4


ildasm一下,看看你的resource的全称是什么?

一般的,是:XUWEI.LibNetUI.类名.资源名

#5


我查看了,资源的全名是LibNetUI.xwOptionView.resources
奇怪的就是,如果我不加接口定义,就可以找到资源,如果加上接口定义就找不到资源为什么?

#6


奇怪的是如果我定义了接口 IOptionListView  程序就生成了两个资源文件。一个是

LibNetUI.xwOptionView.resources
一个是XUWEI.LibNetUI.xwOptionView.resources
如果我不定义接口程序就生成一个资源文件
XUWEI.LibNetUI.xwOptionView.resources

#7


http://www.microsoft.com/china/MSDN/library/netFramework/netframework/Nfdnformswinforms02202003.mspx

#8


学习,并帮你up