ここに表示されているものを実装しようとしています:http ://www.piotrwalat.net/nhibernate-session-management-in-asp-net-web-api/ですが、に問題がありますNhSessionManagementAttribute
。
OnActionExecuting(HttpActionContext actionContext)
関数が呼び出されたかどうかを確認するためにブレークポイントを設定しましたが、呼び出されていませんでした。
global.asax.cs
私は自分のファイルを再確認し、実際にに登録していることを発見しましActionFilter
た:
GlobalConfiguration.Configuration.Filters.Add(new NhSessionManagementAttribute());
また、コントローラークラス自体と、そのアクションの両方に属性を使用せずに装飾しました。
public class ClientsController : ApiController {
static readonly ClientRepository repository = new ClientRepository();
[NhSessionManagement]
public IEnumerable<Client> GetAllClients() {
return repository.GetAll();
}
[NhSessionManagement]
public Client GetClient(int id) {
Client client = repository.Get(id);
if (client == null) {
throw new HttpResponseException(
new HttpResponseMessage(HttpStatusCode.NotFound)
);
}
return client;
}
}
このアクションフィルターが内部のイベントを発生させないのはなぜですか?