如何将此Java代码移植到C#?

blu*_*blu 0 c# java reflection design-patterns

我正在研究用Java实现的模式,并且有一些关于它如何与C#对齐(可以移植到)的问题.

Java的:

class Foo
{
    private Class someClass;
    ...
}

class Bar
{
    private Field some Field;
}
Run Code Online (Sandbox Code Playgroud)

首先,Class存储域对象的实例.看起来Java在类型上公开了反射方法,用于通过反射访问对象上的字段.什么类型将成为C#的同义词?我会使用对象然后使用MethodInfo还是有更好的方法?

其次,Field是框架中的类型,使用以下方式分配:

someClass.getDeclaredField(fieldName)
Run Code Online (Sandbox Code Playgroud)

我应该使用.NET框架中的并行吗?

现在我创建了一个自定义对象来代替Foo中的Class,我为Field创建了一个自定义对象.有没有一种首选的方法呢?

Dar*_*rov 5

您可以查看FieldInfo类型和GetField方法.

代码可能看起来像行之一:

class Foo
{
    public Type someClass;
    ...
}

class Bar
{
    private FieldInfo some_Field;

    public Assign(string fieldName)
    {
        Foo foo = new Foo();
        some_Field = foo.someClass.GetField(fieldName);
    }
}
Run Code Online (Sandbox Code Playgroud)