カスタム フィルターを実装するとき、私は現在、DTO が filter 属性でタグ付けされ、サービスで使用したいいくつかの共通変数を公開するカスタム インターフェイスを実装するパターンを使用しています。次に例を示します。
public interface IMyInterface
{
Int32 MyVariable { get; set; }
}
[MyFilter]
public class MyDto
: IMyInterface
{
public Int32 MyVariable { get; set; }
}
public class MyFilterAttribute
: Attribute
, IHasRequestFilter
{
public int Priority { get { return 0; } }
public IHasRequestFilter Copy () { return this; }
public void RequestFilter(IHttpRequest req, IHttpResponse res, object requestDto)
{
var temp = requestDto as IMyInterface;
if( temp != null )
{
var x = [something from the request object...]
temp.MyVariable = x;
}
}
}
これは意図したパターンですか?または、インターフェースだけでそれを行う方法はありますか? AppHost 経由でインターフェイスを実装するすべての dtos のフィルターを登録する方法はありますか?