go - Golang 中的 Activator.CreateInstance() 类似物
问题描述
在C#中,有一个CreateInstance
类方法Activator
允许您创建反射类型的实例,如此处所示。
有没有办法在Go编程语言中做同样的事情?我想通过类型的名称从插件(Linux上的 .so 或Windows上的.dll )中获取一个类型,并在我的代码中创建一个这种类型的实例。我怎样才能做到这一点?
解决方案
有没有办法在 Go 编程语言中做同样的事情?
不。
我想通过类型的名称从插件(Linux 上的 .so 或 Windows 上的 .dll)中获取一个类型,并在我的代码中创建一个这种类型的实例。我怎样才能做到这一点?
你不能。对不起。你必须重新设计。Go 不是 C# 并且有不同的规则。一条规则是您不能仅通过名称创建类型的实例。但是,如果您的插件通过某种注册表(想想包图像)宣布它包含哪些类型及其名称,那么您的主代码可以在该注册表中查找名称和类型并正常反映。
推荐阅读
- nestjs - 有没有办法在nestjs中动态订阅websocket服务器中的事件
- python - 有没有一种简单的方法可以确保 matplotlib 子图保持正方形并且不与第二个子图重叠?
- shiny - 使用 JavaScript 在 DataTable 中用颜色格式化行
- flutter - AnimatedSize 裁剪小部件
- build - 从命令行指定 msbuild 包目录
- python - Pandas 获取对象 dtype 中所有数据类型的列表
- amazon-web-services - 为什么我仍然被亚马逊 S3 收费
- javascript - 将鼠标悬停在图像上的另一个 div 上会打断我的 onmouseenter
- java - 如何通过标签从与其他类同名的跨度类中获取元素?
- ldap - rbac 为 True 时气流中的 ldap 配置