gpt4 book ai didi

c# - 如何使用 IL Emit 定义相互引用的两种类型

转载 作者:太空狗 更新时间:2023-10-30 01:11:35 25 4
gpt4 key购买 nike

我需要使用反射 Emit 来定义这样的东西:

public class Foo {
public Bar Bar { get; set; }
}

public class Bar {
public Foo Foo { get; set; }
}

难点在于调用TypeBuilder.DefineProperty()时,需要传递属性返回值的System.Type,目前还不存在。如果引用仅以一种方式进行,那将很容易,但双向进行会导致先有鸡还是先有蛋的问题。

我希望找到一个采用 TypeBuilder 而不是 Type 的重载,这样我就可以同时定义两个类,然后在结束时对这两个类调用 TypeBuilder.CreateType()。但我没有看到这样的事情。

解决这个问题的正确方法是什么?

最佳答案

TypeBuilder 是 Type 的子类: MSDN

您可以将其传递给 DefineProperty。

关于c# - 如何使用 IL Emit 定义相互引用的两种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com