如何访问一个实例????

haixj 2004-12-28 01:51:46
[STAThread]
static void Main()
{

MainForm fmain = new MainForm();
fmain.main_test();
Application.Run(fmain);
}
这个fmain只是局部实例变量,如果之后我在其它ASSEMBLY或FORM中要访问fmain这个实例,该如何做,要用到REFLECTION吗??
...全文
104 点赞 收藏 7
写回复
7 条回复
haixj 2004年12月28日
我也想过申明为PUBLIC成员,但是其它的被入口ASSEMBLY(EXE)引用的ASSEMBLY中如何应该访问该PUBLIC成员,是不是只有用REFLECTION中的GETMEMBER了?
回复 点赞
ET2004 2004年12月28日
flygoldfish(长江支流) 的代码是创建了新的实例:CreateInstance() 这一行就很容易看出来。
回复 点赞
ET2004 2004年12月28日
Reflection 只能创建一个新的 fmain 实例,而不能访问现有的实例。要做到这个,要用 .NET Remoting 技术,而且要有一个继承自 MarshalByRefObject 的代理类。
回复 点赞
niwalker 2004年12月28日
No,你的实例是局部变量,如果你要在其他的Assembly访问它或者在其他的类中访问它,你最好是把它作为一个public的成员。
回复 点赞
长江支流 2004年12月28日
public object GetObjectByName(string p_ClassName)
{
Type type = Type.GetType(p_ClassName);

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetAssembly(type);

object objInstance = assembly.CreateInstance(type.ToString());
return objInstance;
}

回复 点赞
nga96 2004年12月28日
UPUP
回复 点赞
长江支流 2004年12月28日
是的,用反射
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告