笔记 Activator.CreateInstance(Type)

这段代码取自NopCommerce 3.80 的 权限列表初始化代码

dynamic provider = Activator.CreateInstance(providerType);

?

文件位置 Presentation\Nop.Web\Controllers\InstallController.cs

?

?

//register default permissions

//var permissionProviders = EngineContext.Current.Resolve<ITypeFinder>().FindClassesOfType<IPermissionProvider>();

var permissionProviders = new
List<Type>();

permissionProviders.Add(typeof(StandardPermissionProvider));

foreach (var providerType in permissionProviders)

{

dynamic provider = Activator.CreateInstance(providerType);

EngineContext.Current.Resolve<IPermissionService>().InstallPermissions(provider);

}

方法定义

//

// 摘要:

// 使用指定类型的默认构造函数来创建该类型的实例。

//

// 参数:

// type:

// 要创建的对象的类型。

//

// 返回结果:

// 对新创建对象的引用。

//

public
static
object CreateInstance(Type type);

时间: 2024-11-07 19:24:01

笔记 Activator.CreateInstance(Type)的相关文章

Activator.CreateInstance 方法 (Type) 的用法

转自:http://www.cnblogs.com/lmfeng/archive/2012/01/30/2331666.html Activator.CreateInstance 方法 (Type) 的用法 Activator.CreateInstance 方法 (Type) 使用与指定参数匹配程度最高的构造函数来创建指定类型的实例. 命名空间:System程序集:mscorlib(在 mscorlib.dll 中) C# public static Object CreateInstance

C# Activator.CreateInstance()方法使用

本文来自:http://blog.csdn.net/jaydawson/article/details/5539438 C#在类工厂中动态创建类的实例,所使用的方法为: 1. Activator.CreateInstance (Type) 2. Activator.CreateInstance (Type, Object[])   两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数. //Activator.CreateInstance(Type) object result = nu

C# Activator.CreateInstance()

C#在类工厂中动态创建类的实例,所使用的方法为: 1. Activator.CreateInstance (Type) 2. Activator.CreateInstance (Type, Object[])   两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数. //Activator.CreateInstance(Type) object result = null;Type typeofControl =null; typeofControl = Type.GetType(vF

C# Activator.CreateInstance 动态创建类的实例(二)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kernel.Interface { public interface IObjcet { void Put(); void Put(string plus); } } using System; using System.Collections.

C# Activator.CreateInstance 动态创建类的实例(一)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kernel.SimpleLibrary { public class Person { private string name; public Person(){ } public Person(string name) { this.name

用Activator.CreateInstance代替new实现类的实例化(转)

一直想得到这样一个函数,输入一个类的名称为参数,返回一个相应的类的实例. 这在工厂模式中是非常有用的 这样,可以使程序有更高的扩展性,例如,,下面的例子 如果现在有一个类,专门用来计算交通工具的速度,不同的交通工具计算方法是不一样的,但是到底有那些交通工具是未知的或者是可变的,这种情况下,我们可能觉得要在添加交通工具的时候,需要修改用来计算速度的那个类, 但如果用Activator .CreateInstance创建实例,通过接口技术,则只要向程序集添加一个交通工具类,而不需要修改任何其它代码.

[2016-1-28]OMG美语每日笔记-What other type of subject do you use to engage small talk with your colleagues?

坚持学习英语,OMG口语非常长不错,坚持每天整理.学英语坚持最重要,学英语坚持最重要,学英语坚持最重要说三遍! Do you watch this TV show? 你看这档电视节目吗? It is SO good. 超级好看 Do you what Game of Thrones?Oh my gosh It is SO good! 你看冰与火之歌吗?我去太好看了. I don't watch it.I heard it's kind of scary. 我不看听说有点恐怖. binge wat

CloudNotes之桌面客户端篇:笔记撰写样式的支持

最近在CloudNotes桌面客户端中新增了笔记撰写样式的功能.当用户新建笔记的时候,可以在输入笔记标题的同时,选择笔记撰写样式,由安装包默认提供的样式主要有默认样式(Default).羊皮纸样式(Leather Paper)以及Word 2013样式(Microsoft Word 2013).选择笔记样式的时候,还提供了预览功能,用户可以直接预览样式效果: 当然,为了方便操作,用户可以在设置界面选择默认使用的样式,从而每次新建笔记时,默认使用的样式就会自动被选中,减少用户的操作次数.设置界面中

反射-获取程序集的type

反射的基本概念 反射无处不在,我们天天在使用.Vs的智能提示,就是通过反射获取到类的属性.方法等.还有反编译工具也是通过反射实现. 反射:就是动态获取程序集的元数据(提供程序集的类型信息)的功能. Type类实现反射的一个重要的类,通过它我们可以获取类中的所有信息包括方法.属性等.可以动态调用类的属性.方法. 1,Type是对类的描述.如何获取Person类中的所有方法和属性? Person p = new Person(); Type tp = p.GetType();//获取当前实例的类型;