【发布时间】:2018-09-18 15:34:29
【问题描述】:
我有一个附加到主项目的类库项目,在这个类库项目中,我在这个类下有一个名为 SQSQueueScheduler.cs 的类,我编写了以下代码
Contacts contact = (Contacts)ConfigurationManager.GetSection("bolteContactConfiguration");
if (contact != null)
{
className = contact.ClassName;
Type myclass = Type.GetType(className);
objContacts = (Contacts)Activator.CreateInstance(myclass);
}
这里的Contacts是一个基类,我想通过它动态创建派生类ChildContacts的实例。这个基类存在于类库项目和主网站的派生类中。变量 className 的值为 Child.ChildContacts(AIST 是命名空间,AISTContacts 是类的名称)。在这里,我得到了 myClass 变量中的 Null 值。 我在主项目的web.config中写的代码是
<section name="bolteContactConfiguration" type="TDNBolte.Contacts,3DN Bolte" requirePermission="false"/>
<bolteContactConfiguration name ="Contacts" className="Child.ChildContacts"/>
这里的3DN Bolte是类库项目的程序集名称。
我想问一下,有没有办法通过类库项目的类(SQSQueueScheduler)中编写的代码来获取主网站(ChildContacts)中存在的类的类型?
【问题讨论】:
-
让类库公开一些方法让 consumer 将此类信息传递给它和/或提供 factory 会更正常i> 方法,您可以通过这些方法构造所需的对象。让类库颠倒正常关系并遍历消费者的类在这里似乎是错误的。
标签: c# inheritance class-library custom-configuration