C# 3.0 系统反思
我开发了一个名为AAA的应用程序,在这个应用程序中,我引用了一个名为BBB的程序集。在特定条件下,我使用Assembly.LoadFromFile()函数将BBB组件加载到我的应用程序中。现在我需要在运行时访问BBB assembly中AAA的某些对象实例。是否可以完成此任务?C# 3.0 系统反思,c#-3.0,C# 3.0,我开发了一个名为AAA的应用程序,在这个应用程序中,我引用了一个名为BBB的程序集。在特定条件下,我使用Assembly.LoadFromFile()函数将BBB组件加载到我的应用程序中。现在我需要在运行时访问BBB assembly中AAA的某些对象实例。是否可以完成此任务? 提前感谢。您正在尝试创建对象的新实例吗?如果是这样,这应该是可行的: Assembly ass = Assembly.LoadFrom("BBB.dll"); Object myObject = ass.CreateIn
提前感谢。您正在尝试创建对象的新实例吗?如果是这样,这应该是可行的:
Assembly ass = Assembly.LoadFrom("BBB.dll");
Object myObject = ass.CreateInstance("BBB.MyObject");
注意,这假设您的对象有一个默认构造函数-如果您需要将参数传递到构造函数中,您可以这样做(假设构造函数以字符串作为参数):
让AAA在加载对象后将其引用传递给BBB中的某个变量。
要从BBB访问对象ooo,您应该向BBB提供ooo的(可能是间接的)引用。AAA可以使用反射来发现BBB的适当入口点,然后为其提供ooo。如何从BBB程序集调用函数?您可以将AAA对象传递给它吗?您应该接受以下答案之一,或者至少提供反馈:)
Assembly ass = Assembly.LoadFrom("BBB.dll");
Type t= ass.GetType("MyObject");
ConstructorInfo c = t.GetConstructor(new Type[]{typeof(string)});
Object myObject2 = c.Invoke(new object[] { "myParam" }