首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#反射在运行时创建接口

C#反射在运行时创建接口
EN

Stack Overflow用户
提问于 2019-06-07 05:04:27
回答 1查看 138关注 0票数 2

有没有办法在运行时创建一个接口?我试过了:

代码语言:javascript
运行
复制
string typeSignature = "IFoo";
...
TypeBuilder tb = moduleBuilder.DefineType(typeSignature, TypeAttributes.Interface);

但这给出了一个例外:

‘接口必须声明为抽象。’

所以我试着:

代码语言:javascript
运行
复制
TypeBuilder tb = moduleBuilder.DefineType(typeSignature, TypeAttributes.Interface 
    | TypeAttributes.Abstract);
Type dynamicType = tb.CreateType();

但是dynamicType.GetType().IsInterface返回false。出于某种原因,它认为dynamicType是一个类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 06:22:12

正如Ralf在评论中所建议的,您可以尝试,

代码语言:javascript
运行
复制
TypeBuilder tb = moduleBuilder.DefineType(
    typeSignature,
    TypeAttributes.Interface | TypeAttributes.Abstract | TypeAttributes.Public);
Type dynamicType = tb.CreateType();

dynamicType.IsInterface      // true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56485064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档