在过去的 3 周里,我一直在网上搜索,试图让它发挥作用,但我没有任何运气。
一点背景故事:将 C# .NET 4.0 DLL 注入 .NET 4.0 应用程序。
(我可以使用用 C++ 编写的引导 DLL 注入我的 DLL,并且可以调用应用程序中的函数)
我可以让这段代码工作,但我想做的是获取“实际”值,而不是创建类的新实例。
下面是反射工作的一个工作示例,我不希望它工作,我不确定反射是否是我此时需要使用的。还是我只是在叫错树?
namespace TestFormsApp4
{
static class Program
{
private static TestClass1 Test = new TestClass1("from class 1");
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
BindingFlags Binding = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
Assembly App = Assembly.Load("TestFormsApp4");
//Get the TestFormsApp4.Program (static) type
Type Test1C = App.GetType("TestFormsApp4.Program");
//get the testclass2 field (TestClass2 testclass2;)
var Test1F = Test1C.GetField("Test", Binding);
//get the value from the field
var Test2C = Test1F.GetValue(Test1C);
Application.Run(new Form1());
}
}
}
namespace TestName1
{
class TestClass1
{
public bool testbool = false;
public TestClass2 testclass2;
public TestClass1(String SetString)
{
this.testclass2 = new TestClass2(SetString);
}
}
}
namespace TestName2
{
class TestClass2
{
public String teststring;
public TestClass2(String SetString)
{
teststring = SetString;
}
}
}