ich eine Variable objDataModel
vom Typ haben UDataModel
die sich von AbstractDataModel
typisieren mit Typ/string Name der Klasse
public class AbstractDataModel
{
internal string SomeName { get; set; }
}
public class UDataModel: AbstractDataModel
{
}
public class FDataModel: AbstractDataModel
{
}
public class UCommandProcessor : AbstractCommandProcessor<UDataModel>
{
}
public class FCommandProcessor : AbstractCommandProcessor<FDataModel>
{
}
public abstract class AbstractCommandProcessor<TDataModel> :SomeInterface<TDataModel>
where TDataModel: AbstractDataModel
{
}
erbt Ich habe Variable vom Typ von UDataModelType heißt var tDataModelType= typeOf(UDataModel)
verwendet, die ich in der Lage bin sein Objekt zu erstellen.
var tDataModel = (AbstractDataModel)Activator.CreateInstance(tDataModelType);
Ich habe Variable vom Typ UCommandProcessor dh var processorType= typeOf(UCommandProcessor)
ich in der Lage bin Aufgabe
var processor = Activator.CreateInstance(processorType);
zu schaffen, aber ich bin nicht in der Lage es in UCommandProcessor typisieren Als ich versuchte,
var processor = (AbstractCommandProcessor<AbstractDataModel>)Activator.CreateInstance(processorType);
Ich bekomme eine Ausnahme von
Das Objekt des Typs 'ABC.Domain.UCommandProcessor' konnte nicht in den Typ 'ABC.Common.Contract.AbstractCommandProcessor`1 [ABC.Common.Contract.AbstractDataModel]' umgewandelt werden.
Gibt es eine Methode wie
var processor = (AbstractCommandProcessor<typeOf(tDataModel)>)Activator.CreateInstance(processorType);
Auch ich wie
var processor = (AbstractCommandProcessor<typeOf(tDataModel)>)Activator.CreateInstance(processorType);
Soll 'UserDataModel'' UDataModel' sein oder sind das zwei verschiedene Typen? – 31eee384
aktualisierte Frage, Sorry für Verwirrung verursacht –