c# - 将扩展方法与运行时程序集一起使用

标签 c# reflection methods

有没有办法在使用 Relection.Emit 动态创建的类上使用扩展方法?例如:

 class somewhere
 {
     somewhere()
     {
         // define the type here using ReflectionEmit, etc.
         Type tableType = CreateTableType(...table parameters...);

         var table = Activator.CreateInstance(tableType);
         table.Shuffle();
     } 
 }

 //... elsewhere
 public class static TableTypeExtensions   
 {
      public static Table Shuffle( this Table t)  
      {   
          ...
      }
 }

但我没有名为“Table”的类,只有 Type tableType 可用。
有什么解决办法吗?
谢谢

最佳答案

使动态类实现一个接口(interface)(如果需要,可以是一个空接口(interface)),向接口(interface)添加扩展。

关于c# - 将扩展方法与运行时程序集一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730866/

相关文章:

c# - 在 Active Directory 中找不到锁定属性 (C#)

java - 如何在Java反射中获取字段值

reflection - 获取类属性

C++ 重写方法不起作用

groovy - 如何使用 groovy mixin 添加静态方法

Java - 如何为方法提供数组

c# - 引用并存储动态创建的控件中的数据?

c# - 紧凑框架中的透明度

c# - 如何将玩家存储在数组中?

c# - 解析c#类文件获取属性和方法