Castle Dynamic Proxyでプロキシするクラスがあります。いくつかのカスタム属性をプロキシ メソッド (プロキシされたクラスでは定義されていません) に追加したいと考えています。これは可能ですか?
アプリケーションのサービス層用に ASP.NET Web API 層を生成したいので、これが必要です。私はサービスをプロキシしました (ApiController と追加の IMyService インターフェイスから継承して)、それはうまく機能しますが、WebAPI 固有の属性をこの新しく作成された動的クラスに追加したいので、Web API フレームワークはそれらを読み取ることができます。
編集:
誰かが私が実際に何を望んでいるのか知りたい場合は、詳細に説明したいと思います.
public interface IMyService
{
IEnumerable<MyEntity> GetAll();
}
public class MyServiceImpl : IMyService
{
public IEnumerable<MyEntity> GetAll()
{
return new List<MyEntity>(); //TODO: Get from database!
}
}
public class MyServiceApiController : ApiController,IMyService
{
private readonly IMyService _myService;
public MyServiceApiController(IMyService myService)
{
_myService = myService;
}
public IEnumerable<MyEntity> GetAll()
{
return _myService.GetAll();
}
}
MyServiceImpl によって実装された IMyService があるとします。そして、Webからこのサービスを利用できるようにApiコントローラーを作りたいです。しかし、ご覧のとおり、API コントローラーは実際のサービスの単なるプロキシです。では、なぜそれを書く必要があるのでしょうか。Castle Windsor を使用して動的に作成できます。
これは私のアイデアであり、私の新しいプロジェクト ( https://github.com/hikalkan/aspnetboilerplate ) でほぼ完了しました。しかし、API コントローラーの GetAll メソッドに属性 (Authorize など) を追加する必要がある場合はどうでしょう。そのようなクラスがないため、直接追加することはできません。城の動的プロキシです。
だから、この問題の横に。シナミック プロキシ クラスのメソッドに属性を追加できるかどうかを知りたいです。