Ich habe einen Datenanbieter, der eine Sammlung von Entitäten enthält. Ich möchte nur eine neue Entität durch den Datenprovider erstellen können.C# CF2.0 - System.Activator und Interne Klassen
Entity entity = Provider.AddNew();
enity.set_Properties... etc
Mein Problem ist, dass, wenn ich auf dem Interne meine Einheiten gesetzt, System.Activator kann eine Instanz von ihnen nicht schaffen:
D.h., eine neue Platte, die ich verwenden müssen, erstellen. Jeder meiner Datenanbieter verwendet eine Basisklasse mit dem generischen Typ der Entität, die übergeben wurde.
Also im Moment meines AddNew() -Methode enthält folgende Komponenten:
public T AddNew()
{
T added = Activator.CreateInstance<T>();
this.Collection.Add(added);
return added;
}
Es ist natürlich nicht das Ende der Welt, wenn ich eine neue Einheit manuell außerhalb des Data Provider Namespaces instanziieren kann, aber es scheint, sinnlos, wenn man bedenkt, dass es keine Möglichkeit gibt, sie jemals zu retten. Warum also die Option dazu geben?
BEARBEITEN: Vergessen zu erwähnen, dass alle meine Provider, Entitäten usw. im selben Namespace sind.