一个关于相互调用、传值问题 主项目A引用了用户控件B(B不能引用A),现在需要达到一个目的是通过B里面的一个事件(函数方法)更改A里面的的值,苦思冥想了好长时间,也没想到方法。除非相互引用,方能达到目的,但是不能用相互引用。求高人给个思路,给个解决方法。这个问题应该比较普遍。在多人进行模块化松耦合开发时应该经常用到。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用户控件动态调用父页面的方法Page p = this.Parent.Page;Type pageType = p.GetType();MethodInfo mi = pageType.GetMethod("");mi.Invoke(p, new object[] { "参数1","参数2" }); http://blog.chinaunix.net/u2/70983/showart_1851903.html 这是最基本的编程,到处都需要如此:其实你已经说出来了——事件。比如说TextBox有个TextChanged之类的事件,它就是把文本修改的事情通知我们的程序,难道需要TextBox的控件程序引用我们的程序? 先开发接口,比如ipos.dll,再开发pos.dll实现接口功能。fo.dll引用ipos.dll,然后实现反射创建,那样就不需要直接引用pos.dll了。例子:namespace ipos{interface iClass1{ void Method1();}}using iPos;using fo;namespace pos{ public class Class1:iClass1 { public void Method() { Class2 class2=new Class2(); .................. } }}using iPos;namespace fo{ public class Class2 { public iClass1 class1; public Class2() { class1=Assembly.Load("Pos").CreateInstance("Pos.Class1"); } ................. }}先学习依赖注入,反射创建的原则你就能立即明白。但此用法一般用于Factory、Repository等底层开发,并非随处适用,滥用会导致增大系统负荷,阁下可以按需要酌情处理。QQ群:59557329 .NET技术开发联盟希望大家可以踊跃参加,积极讨论 如何学习一门新语言/技术? 关于串口的问题 Outlook2007中,怎么把Ribbon(XML)中定义的菜单添加右键 C# 在页面选择用户自动在另一个框出来对应号码 如何实现????? 如何让用c#编的应用程序能在没有安装.Net框架的机子上运行 c# 新建DataTable 请教高手-c#里面怎么取得我浏览一个网站时发送给服务器的http报头啊 sql中如何判断某一字段值存在数据表的某一字段中 请问字符串函数Copy,CopyTo如何用啊? 如何 从Dataset多个datatable中进行外关联? 编程在线
Page p = this.Parent.Page;
Type pageType = p.GetType();
MethodInfo mi = pageType.GetMethod("");
mi.Invoke(p, new object[] { "参数1","参数2" });
http://blog.chinaunix.net/u2/70983/showart_1851903.html
fo.dll引用ipos.dll,然后实现反射创建,那样就不需要直接引用pos.dll了。
例子:
namespace ipos
{
interface iClass1
{
void Method1();
}
}using iPos;
using fo;
namespace pos
{
public class Class1:iClass1
{
public void Method()
{
Class2 class2=new Class2();
..................
}
}
}using iPos;
namespace fo
{
public class Class2
{
public iClass1 class1;
public Class2()
{
class1=Assembly.Load("Pos").CreateInstance("Pos.Class1");
}
.................
}
}
先学习依赖注入,反射创建的原则你就能立即明白。
但此用法一般用于Factory、Repository等底层开发,并非随处适用,滥用会导致增大系统负荷,阁下可以按需要酌情处理。QQ群:59557329 .NET技术开发联盟
希望大家可以踊跃参加,积极讨论