请问如何用反射创建一个Socket对象

布鲁克零三四四 2017-03-25 11:06:33
     
Type type = Type.GetType("System.Net.Sockets.Socket, System.Net.Sockets", true);
var socket = (System.Net.Sockets.Socket)Activator.CreateInstance(type);


我这样做总是失败,有异常
谢谢大家了
...全文
198 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuggzu 2017-03-25
  • 打赏
  • 举报
回复
没引用system.net名空间?
  • 打赏
  • 举报
回复
引用 1 楼 xuggzu 的回复:
试试 Type type = Type.GetType("……"); dynamic obj = type.Assembly.CreateInstance(type)
谢谢回复,我的异常处在第一行GetType,还没执行到第二行,第二行我也不知道对不对
xuggzu 2017-03-25
  • 打赏
  • 举报
回复
试试
Type type = Type.GetType("……");
dynamic obj = type.Assembly.CreateInstance(type)
Forty2 2017-03-25
  • 打赏
  • 举报
回复
Socket类不在mscorlib里,而在System.dll下,因此Type.GetType时你要指定类型全称(AssemblyQualifiedName)。
var qName = "System.Net.Sockets.Socket, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
Type type = Type.GetType(qName, true);
另,Socket没有公共的无参构造函数,你Activator需要传参。
Poopaye 2017-03-25
  • 打赏
  • 举报
回复
Type.GetType(typeof(Socket).AssemblyQualifiedName, true);

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧