当前位置: 首页 > 编程语言 > C#

Assembly.CreateInstance和Activator.CreateInstance的区别?分享

时间:2023-04-11 10:40:23 C#

Assembly.CreateInstance和Activator.CreateInstance的区别?这些电话有什么区别?没有。Assembly.CreateInstance实际上调用了Activator.CreateInstance。在Assembly.CreateInstance上使用反射器:publicobjectCreateInstance(stringtypeName,boolignoreCase,BindingFlagsbindingAttr,Binderbinder,object[]args,CultureInfoculture,object[]activationAttributes){Typetype=this.GetType(typeName,false,ignoreCase);如果(类型==null){返回null;}返回Activator.CreateInstance(类型、bindingAttr、活页夹、args、文化、activationAttributes);}Assembly.CreateInstance在特定程序集中查找类型,Activator.CreateInstance可以创建任何类型的对象。Activator.CreateInstance具有Assembly没有的重载;例如,它可以使用远程处理在其他应用程序域或其他服务器上创建对象。您可以为Activator.CreateInstance提供类型名称和程序集名称,而不是Type对象。这意味着它将尝试将程序集加载到当前AppDomain中(如果当前未加载),然后尝试加载类型。我相信Assembly.CreateInstance(调用Activator)不会尝试加载未加载的程序集。它只是尝试获取指定类型的Type对象,如果找不到就返回null(我是看代码说的,不是测试过的)。以上就是C#学习教程:Assembly.CreateInstance和Activator.CreateInstance的区别?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢