c# - 如果任务是在 C# 中编写 hello world...使用反射,那么使用反射的一些巧妙方法是什么?

标签 c# .net reflection

我收到了一个“为了好玩”的挑战,要求我编写一个“hello world”应用程序。唯一的条件是我使用反射,没有指定的方式必须满足这个条件,但巧妙或优雅或“酷”的使用很有趣。除了注入(inject)外部库或执行某种 IHelloWorldMessageProvider 组合容器 mojo 之外,我没有看到很多选项。有大佬赐教吗?

最佳答案

就个人而言,如果我想使用反射编写一个复杂而有趣的 Hello World 应用程序……我将不得不使用动态编译。我没有时间写一个完整的例子,但工作流程会是这样的:

  1. 开始申请。

  2. 创建一个包含 Hello World C# 代码的字符串。

  3. 从应用程序调用编译器以在运行时创建 DLL。

  4. 使用反射加载生成的程序集。

  5. 获取适当的类型和方法...然后调用它(从而显示“Hello World”消息)。

查看此页面进一步解释动态编译的过程:

Executing Dynamic Code in .NET

关于c# - 如果任务是在 C# 中编写 hello world...使用反射,那么使用反射的一些巧妙方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464811/

相关文章:

c# - 使用 System.DirectoryServices.xxx 是否可以确定用户可以管理哪些 AD 组?

c# - 自定义 ILogger 实现和额外/自定义字段?

c# - 自定义标签到 PDF

c# - 在 C# 中确定引用类型的可空性时,何时应使用 NullabilityInfo.ReadState 与 NullabilityInfo.WriteState?

Java:使用工厂实例化 T 类型的数组对象

javascript - 如何在列表框中显示多个选定的项目

c# - 如何访问动态程序集中的匿名字段?

c# - 使用 JavaScript onclick 删除元素并在 SQL 中保存变量

javascript - WinForms 应用程序中的地理定位

c# - 将对象转换为 NameValueCollection