0

我有 2 个项目,在一个项目中,我有一个表单和一个具有不同信息的类,此信息仅在运行时获取,现在在另一个项目中,我有另一个表单,它将使用第一个类的对象来获取信息并把它放在表格里。

基本上我做了一些研究并尝试使用反射,但我发现的所有示例都不能正常工作(实际上根本没有工作)。

        Assembly a = Assembly.LoadFile("Server.GUI.LocalGUI.dll");
        object o = a.CreateInstance("ServerManager");
        Type t = o.GetType();

这是我试过的代码,不知道它是否正确......

我正在使用 .net 2.0

有没有人有关于如何在运行时使用另一个 dll 中一个对象的数据的工作示例?

4

2 回答 2

1

我有 2 个项目:MyForm1MyForm2。参考 中的项目MyForm1MyForm2填充MyForm1。创建MyForm1in的实例MyForm2并访问该方法及其值。

或者创建另一个Library项目。在其中公开一个静态变量。在两个 Forms 项目中引用这个库。分配一些值MyForm1并访问 中的相同属性MyForm2

但是,如果您真的希望您的代码成为托管代码,请尝试学习和实现MVP。它可能会给你一种新的方式来看待你的问题的解决方案。

您甚至可以在同一个项目中创建这两种形式。在单独的库中处理数据。

于 2013-02-12T14:52:25.370 回答
0

如果您想要这样做 - 您可以这样做:

Assembly a = Assembly.LoadFile("Server.GUI.LocalGUI.dll");
dynamic o = a.CreateInstance("ServerManager");
o.Method();

但我不推荐这个,除非你绝对必须这样做。使用dynamic关键字可以是快捷方式 - 但有时是您不想去的地方的快捷方式..

于 2013-02-12T14:47:03.230 回答