c# – 获取对调用方法的对象的引用?
发布时间:2020-12-15 18:28:41 所属栏目:百科 来源:网络整理
导读:我有一个dll包括: public abstract class Module{ internal int ID; public abstract void ModuleStart();}public void function1() {}public void function2() {}//etc... 然后我有另一个dll引用上面的dll并具有: class MyModule : Module{ public overri
我有一个dll包括:
public abstract class Module { internal int ID; public abstract void ModuleStart(); } public void function1() {} public void function2() {} //etc... 然后我有另一个dll引用上面的dll并具有: class MyModule : Module { public override void ModuleStart() { function1(); } } 我希望能够做的是让function1知道调用模块ID的值,而不是传入它.有没有办法做到这一点?基本上我要做的是,主要的模块DLL被加载,一个方法运行在第二个DLL中加载,使用反射来确保它有一个Module的子,为它分配一个ID并运行ModuleStart.然后,MyModule可以执行它所需的操作,从第一个dll调用函数以访问内部受保护的内存,但是当调用这些函数时,它们需要知道调用它们的模块的ID.这可能吗? MyModule不了解其ID,也无法更改它. 解决方法
.NET 4.5添加了一些功能,可以使用
CallerMemberNameAttribute 执行与此类似的操作.以下是文档中的示例:
public void TraceMessage(string message,[CallerMemberName] string memberName = "",[CallerFilePath] string sourceFilePath = "",[CallerLineNumber] int sourceLineNumber = 0) { Trace.WriteLine("message: " + message); Trace.WriteLine("member name: " + memberName); Trace.WriteLine("source file path: " + sourceFilePath); Trace.WriteLine("source line number: " + sourceLineNumber); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLite使用小结
- ruby-on-rails – simple_form分组选择关联给出“未定义的方
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十二节
- c# – ArcGIS Desktop API – 检查渲染是否完成
- 为什么我必须使用close()来关闭文件?
- c# – 可以在Synology nas上安装SQL Server吗?
- sqlite获取几条记录的SQL语句
- ruby-on-rails – 在capistrano任务中调用多级capistrano任
- oracle 把A用户所有表的查看权限赋给B用户(批量赋权)
- FileZiilla Server Interface.xml