我有一个包含实体集合的数据提供者。我只希望能够通过数据提供者创建一个新实体。
即,要创建我需要使用的新记录:
Entity entity = Provider.AddNew();
enity.set_Properties... etc
我的问题是,如果我将实体设置为内部,System.Activator 无法创建它们的实例。我的每个数据提供者都使用一个基类,该类具有传递的实体的通用类型。
所以目前我的 AddNew() 方法包含以下内容:
public T AddNew()
{
T added = Activator.CreateInstance<T>();
this.Collection.Add(added);
return added;
}
如果我可以在数据提供者命名空间之外手动实例化一个新实体,这显然不是世界末日,但考虑到无法保存它们似乎毫无意义,那么为什么要选择这样做呢?
编辑:忘了提到我所有的提供者、实体等都在同一个命名空间中。