Ich verwende ASP.NET MVC
mit Ninject
und ich versuche, eine ActionResult
Fabrik zu erstellen. Sagen wir, ich habe folgendes ActionResults
:Wie erstelle ich eine Fabrik, die verschiedene Instanzen mit unterschiedlichen Parametern zurückgibt?
public class SuccessResult : ActionResult
{
public string SuccessMessage { get; set; }
public SuccessResult(string successMessage) { ... }
}
public class FailResult : ActionResult
{
public int FailCode { get; set; }
public FailResult(int failCode) { ... }
}
public class DataResult : ActionResult
{
public object Data { get; set; }
public string MimeType { get; set; }
public DataResult(object dataToSerialize, string mimeType) { ... }
}
Also für jeden ActionResult
, die Parametertypen und die Anzahl der Parameter unterschiedlich sein wird. Ich habe ein ActionResultFactory
die wie folgt aussieht:
public class ActionResultFactory
{
private readonly IKernel _kernel;
public ActionResultFactory(IKernel kernel)
{
_kernel = kernel;
}
public T Create<T>() where T : ActionResult
{
return _kernel.Get<T>(); // how do I pass the parameters?
}
}
Wie würde ich das Werk zu schreiben, so dass es Parameter nehmen und sie an den Konstruktor des Objekts übergeben? Oder sollte ich es stattdessen tun:
wo jede Eigenschaft öffentlich verfügbar ist und ich sie nach der Objekterstellung zuweisen?
Wo ist dein Parameter? Meinst du "T"? –