次のコードで、私が何をしようとしているのか(ただし失敗しているのか)を確認できます。
protected T GetObject()
{
return new T();
}
どんな助けでも大歓迎です。
編集:
コンテキストは次のとおりです。私は、標準化されたメソッドを使用して、すべてのコントローラーから派生するカスタムコントローラークラスをいじっていました。したがって、コンテキストでは、コントローラータイプのオブジェクトの新しいインスタンスを作成する必要がありました。したがって、執筆時点では、次のようなものでした。
public class GenericController<T> : Controller
{
...
protected T GetObject()
{
return (T)Activator.CreateInstance(ObjectType);
}
public ActionResult Create()
{
var obj = GetObject()
return View(obj);
}
そして、私はここでの反射が最も簡単だと判断しました。私は確かに、質問の最初のステートメントを考えると、正しいとマークするための最も適切な答えはnew()制約を使用するものであったことに同意します。私はそれを修正しました。