【问题标题】:Insert/Inject an Object to string code将对象插入/注入到字符串代码
【发布时间】:2015-05-23 04:59:55
【问题描述】:

我有一个 C# 代码在运行时使用 System.CodeDom.CodeCompileUnit 动态生成,我使用 Microsoft.CSharp.CSharpCodeProvider 编译它,我想要的是在这个字符串中插入一个已经定义和初始化的变量(一个 ArrayList),这样我就可以在之前使用它编译,我该怎么做?

【问题讨论】:

  • 你知道ArrrayList 已经过时了吧?
  • 不,我没有,谢谢提醒
  • 已经过时十年了!请改用List<T>。如果您确实需要一个可以容纳各种对象的集合,请使用List<object>

标签: c# reflection system.reflection codedom csharpcodeprovider


【解决方案1】:

您需要生成创建此变量的代码并用您拥有的值填充它。或者,您可以为您生成的方法之一添加一个参数,并在运行时传递它。没有什么神奇的方法可以帮到你。

CodeDom 不完整、过时且过时。现在你应该使用 T4(如果你想将代码作为文本)或 Expressions 和 IL(如果你想执行动态生成的代码)。如果您使用 Expessions,插入变量是微不足道的。使用 T4,只需几行代码,但也需要手动完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2012-09-30
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多