我是Castle Windsor,它适用于控制器构造函数传递正在使用的存储库.
private IStoryRepository Repository;
public StoryController(IStoryRepository Repository)
{
this.Repository = Repository;
}
Run Code Online (Sandbox Code Playgroud)
现在我在管理区域中有一个Action来显示主管理菜单.我使用了自定义授权属性,只检查登录用户是否为admin(只是users表中的isAdmin标志)
[AdminAuthorize]
public ActionResult Menu()
private IStoryRepository Repository;
/// <summary>
/// Initializes a new instance of the <see cref="AdminAuthorizeAttribute"/> class.
/// </summary>
public AdminAuthorizeAttribute(IStoryRepository Repository)
{
this.Repository = Repository;
}
/// <summary>
/// Checks if the user is authorised
/// </summary>
/// <param name="httpContext">The HTTP context.</param>
/// <returns>
/// <c>true</c> if authorized; otherwise, <c>false</c>.
/// </returns>
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return this.Repository.UserIsAdmin(httpContext.User.Identity.Name);
}
Run Code Online (Sandbox Code Playgroud)
如何让Castle将存储库传递给属性构造函数,就像它对控制器构造函数一样?
是否有为控件添加事件方法的快捷方式?如果我有一个按钮,我想添加Click方法而不必输入或切换到设计视图.
编辑:说真的!当我在VB中执行此操作时,我有一个所有控件及其事件的下拉列表.对C#来说这么难吗?
我已经看到很多方法可以在subversion中备份单个存储库.有没有办法一次性备份所有存储库.我有很多不同项目的存储库,并且不希望每次都创建脚本.
我在MS SQL 2005中有一个计算列,可以进行一些增值税计算.该网站使用的发票只能生成一次,并依赖计算列中的值来计算增值税.
不幸的是,发现了一个错误,意味着计算出的增值税值减少了几美分.这不是一个大问题,但我们无法更改所有先前计算的值中的值,因为这些值需要在发票上兑现.
tldr; 如何在不重新计算已计算的值的情况下更改计算列的计算?