各位帮帮我吧~ 程序如下:一个接口工程:
using System;using System;
using System.Net.Sockets;
using System.Net;namespace GodzEyeLib
{
/// <summary>
/// 插件接口
/// </summary>
public delegate void OnActionHandler(object sender, string strMessage);
public interface IPlugin
{
#region events
//插件必要时用其传送消息
event OnActionHandler ActionedFromPlugins;
#endregion #region properties
//插件的名称
string PluginName {get;}
//插件的简单描述
string PluginDescription {get;}
//插件的作者
string PluginAuthor {get;}
//插件的版本
string PluginVersion {get;}
#endregion #region methods
//插件初始化函数
void InitPlugin();
//插件退出
void PluginExit();
//显示插件的配置对话框
void ShowConfigDiag();
//启动插件的检测功能
void Start();
#endregion
}}一个工程实现这个接口:
using System;
using GodzEyeLib;namespace TestLib
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1:GodzEyeLib.IPlugin
{
public Class1()
{
}
#region IPlugin 成员
public event GodzEyeLib.OnActionHandler ActionedFromPlugins;
public string PluginVersion
{
get
{
// TODO: 添加 Class1.PluginVersion getter 实现
return null;
}
} public void Start()
{
for(int i=0;i<10;i++)
{
this.ActionedFromPlugins(this,i.ToString()); //出现System.NullReferenceException异常!!!
}
} public void ShowConfigDiag()
{
// TODO: 添加 Class1.ShowConfigDiag 实现
} public string PluginAuthor
{
get
{
// TODO: 添加 Class1.PluginAuthor getter 实现
return null;
}
} public void PluginExit()
{
// TODO: 添加 Class1.PluginExit 实现
} public string PluginDescription
{
get
{
// TODO: 添加 Class1.PluginDescription getter 实现
return null;
}
} public void InitPlugin()
{
// TODO: 添加 Class1.InitPlugin 实现
} public string PluginName
{
get
{
// TODO: 添加 Class1.PluginName getter 实现
return null;
}
}
#endregion
}
}一个工程调用实现接口的类:
using System;
using TestLib;
using GodzEyeLib;
using System.Net;
using System.Net.Sockets;namespace Test
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
TestLib.Class1 c=new TestLib.Class1();
c.Start();
c.ActionedFromPlugins+=new OnActionHandler(handler);
Console.ReadLine();
} private static void handler(object sender, string strMessage)
{
Console.WriteLine(strMessage);
}
}
}
三个工程编译都没有问题,但最后出现了:
未处理的“System.NullReferenceException”类型的异常出现在 testlib.dll 中。其他信息: 未将对象引用设置到对象的实例。
也就是实现接口的:
public void Start()
{
for(int i=0;i<10;i++)
{
this.ActionedFromPlugins(this,i.ToString());
}
}
上面已经标记出了。唉,怎么都发现不了问题在上面地方,大家帮帮我。
我都快要急死了。
using System;using System;
using System.Net.Sockets;
using System.Net;namespace GodzEyeLib
{
/// <summary>
/// 插件接口
/// </summary>
public delegate void OnActionHandler(object sender, string strMessage);
public interface IPlugin
{
#region events
//插件必要时用其传送消息
event OnActionHandler ActionedFromPlugins;
#endregion #region properties
//插件的名称
string PluginName {get;}
//插件的简单描述
string PluginDescription {get;}
//插件的作者
string PluginAuthor {get;}
//插件的版本
string PluginVersion {get;}
#endregion #region methods
//插件初始化函数
void InitPlugin();
//插件退出
void PluginExit();
//显示插件的配置对话框
void ShowConfigDiag();
//启动插件的检测功能
void Start();
#endregion
}}一个工程实现这个接口:
using System;
using GodzEyeLib;namespace TestLib
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1:GodzEyeLib.IPlugin
{
public Class1()
{
}
#region IPlugin 成员
public event GodzEyeLib.OnActionHandler ActionedFromPlugins;
public string PluginVersion
{
get
{
// TODO: 添加 Class1.PluginVersion getter 实现
return null;
}
} public void Start()
{
for(int i=0;i<10;i++)
{
this.ActionedFromPlugins(this,i.ToString()); //出现System.NullReferenceException异常!!!
}
} public void ShowConfigDiag()
{
// TODO: 添加 Class1.ShowConfigDiag 实现
} public string PluginAuthor
{
get
{
// TODO: 添加 Class1.PluginAuthor getter 实现
return null;
}
} public void PluginExit()
{
// TODO: 添加 Class1.PluginExit 实现
} public string PluginDescription
{
get
{
// TODO: 添加 Class1.PluginDescription getter 实现
return null;
}
} public void InitPlugin()
{
// TODO: 添加 Class1.InitPlugin 实现
} public string PluginName
{
get
{
// TODO: 添加 Class1.PluginName getter 实现
return null;
}
}
#endregion
}
}一个工程调用实现接口的类:
using System;
using TestLib;
using GodzEyeLib;
using System.Net;
using System.Net.Sockets;namespace Test
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
TestLib.Class1 c=new TestLib.Class1();
c.Start();
c.ActionedFromPlugins+=new OnActionHandler(handler);
Console.ReadLine();
} private static void handler(object sender, string strMessage)
{
Console.WriteLine(strMessage);
}
}
}
三个工程编译都没有问题,但最后出现了:
未处理的“System.NullReferenceException”类型的异常出现在 testlib.dll 中。其他信息: 未将对象引用设置到对象的实例。
也就是实现接口的:
public void Start()
{
for(int i=0;i<10;i++)
{
this.ActionedFromPlugins(this,i.ToString());
}
}
上面已经标记出了。唉,怎么都发现不了问题在上面地方,大家帮帮我。
我都快要急死了。
解决方案 »
- C#中网络通信
- 读取XML文件中,某个节点的个数,在线等!!!!急急急!!!1
- 高分求解!!!C#关于控件的循环
- 如何跨窗体创建控件?
- Interop.MSXML2.dll是已经封装好的还是微软自己带有的?
- 在关闭项目是报错!!!
- 急~!c#怎么用代码调用c++ gsoap写的webservice!
- PID得到Excel对象
- 用farpoint for .net v4.0做的程序, 发布在64位的windows server 2008 的服务器上报错,请问是服务器64位的问题吗?
- VS 生成文件,提示“无法删除”和"无法复制",Why???
- 关于xmlHttpRequest的问题
- c#调用vc的dll(参数有LPSTR),怎么出来的是乱码押??
c.ActionedFromPlugins+=new OnActionHandler(handler);
->
c.ActionedFromPlugins+=new OnActionHandler(handler);
c.Start();另,安全起见,还应再改一下:
public void Start()
{
for(int i=0;i<10;i++)
{
//this.ActionedFromPlugins(this,i.ToString());
if(this.ActionedFromPlugins!=null) this.ActionedFromPlugins(this,i.ToString());
}
}