私はコメントから理解していれば、私はあなたが述べたように、プロキシサービスを実装することができ、この
public interface ICtrlService {
List<MyObject> SomeMethod();
}
public ControllerA : Controller {
ICtrlService service;
public MyController(ICtrlService service){
this.service = service
}
public JsonResult SomeAction() {
List<MyObject> result = service.SomeMethod();
return Json(result);
}
}
ような何かを探していると思います。
public class ProxyB : ICtrlService {
public List<MyObject> SomeMethod() {...}
}
あなたも、コントローラは、実際に必要な機能を提供されることを確認して、あなたのコントローラに注入された依存関係として、プロキシを使用することができます。
または、プロキシの依存関係として共通サービスを使用します。
public class ProxyB {
ICtrlService service;
public ProxyB(ICtrlService service) {
this.service = service;
}
public List<MyObject> SomeProxyMethod() {
var result = service.SomeMethod();
//...Do what you want with object
return result;
}
}
これにより、同じ共通サービス機能にアクセスできるように、プロキシがコントローラを呼び出す必要がなくなります。
「JsonResult」に渡す前に、アクション/メソッドのオブジェクトを変更しないでください。 – Nkosi
JsonResultの代わりに具体的な型を返すメソッドが必要です。私がこれをやっている理由は、コントローラーのプロキシーと共有されるインターフェースにコントローラーをラップする必要があるからです。それは私が働いているアプリケーションに非常に特有です。 –
あなたはなぜ 'JsonResult'に並んで' List'を返すのか明確にすることができます – Nkosi