如何解决使用反射创建受保护类的实例
| 有人可以向我解释Activator.CreateInstance方法如何创建受保护类的实例吗?public abstract class File
{
public string Name {get; set;}
}
public class ExcelFile : File
{
protected ExcelFile()
{
}
}
无法通过调用ExcelFile file = new ExcelFile()创建对象的新实例。
\'ExcelFile \'由于不可访问
防护等级
但是可以使用以下方法创建它:
Type type = Type.GetType(\"ConsoleApplication.ExcelFile\");
object o = Activator.CreateInstance(type,BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance,null,new object[0],CultureInfo.InvariantCulture);
上面的代码是从BCL WebRequest.Create()方法中提出的,想知道Activator.CreateInstance中的哪些参数允许反射创建受保护类的实例?
注意:我计划在工厂类中使用Activator.CreateInstance返回新对象,以便希望更好地了解它的工作方式。
解决方法
反射不关心访问修饰符
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。