小编The*_*Sky的帖子

运行测试时,HttpResponseBase.Headers为空

我正在使用Moq创建一个Mock<HttpResponseBase>测试FileResult我正在为我的MVC2应用程序创建.

在WriteFile(HttpResponseBase response)方法中FileResult,我在最后有以下代码:

// Write the final output with specific encoding.
response.OutputStream.Write(output, 0, output.Length);
response.AppendHeader("Content-Encoding", encoding);
Run Code Online (Sandbox Code Playgroud)

它将使用utf-8或gzip取决于请求Accept-Encoding标头的编码.

那么在我的测试中,我设置了我的Mock<HttpResponseBase>喜欢:

var mockResponse = new Mock<HttpResponseBase>();
mockResponse.Setup(r => r.OutputStream).Returns(new MemoryStream());
mockResponse.Setup(r => r.Headers).Returns(new NameValueCollection());
Run Code Online (Sandbox Code Playgroud)

但是当我实际检查标头已设置时,Content-Encoding 总是返回null:

var response = mockResponse.Object;
Assert.AreEqual("utf-8", response.Headers["Content-Encoding"]);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,OutputStream获取写入它的数据,我可以声明它正在写入正确的值.

奇怪的是,当我实际调试FileResultWeb项目时,标头被正确发送.

有没有人对此有所了解?如有必要,我可以提供更多代码.

c# asp.net-mvc unit-testing moq

5
推荐指数
2
解决办法
2273
查看次数

密码盐应该存储在数据库中自己的字段中吗?

我一直在做很多研究,以确定存储我正在开发的系统的密码的最佳实践.到目前为止,我已经决定使用带有RNG的SHA512哈希为每个密码生成一个盐(显然是针对Rainbow Tables等的最佳实践).

将密码存储在表中的两个单独字段中是否过于简单,无法确定数据库中的密码表示(有PasswordHash字段和PasswordSalt字段)?通过默默无闻看起来似乎是安全性,但我想将盐和密码哈希存储在一个连接在一起的字段中.

这会"帮助"吗?

database security passwords

5
推荐指数
2
解决办法
1263
查看次数

从类库中访问ViewContext

是否可以ViewContext从类库中访问?我需要获取当前View和Controller的动作名称.我在我的类库项目中添加了两个System.Web.dll,System.Web.Mvc但仍无法找到获得我需要的方法.虽然我可以使用访问当前上下文System.Web.HttpContext.Current.

c# asp.net-mvc-2

5
推荐指数
1
解决办法
3312
查看次数

如何在局部视图中访问父视图中定义的PageData?

我正在尝试访问部分视图中的视图中定义的 PageData。如果我将 PageData 作为模型传递给部分视图,我就可以访问它。我不喜欢这种方法,因为它不是视图的模型。部分视图将有自己的 PageData 实例。那么有没有办法访问Parent的ViewData呢?这是示例代码...查看代码

@{
    ViewBag.Title = "Home Page";
    PageData["MyName"] = "Sathi";
}
<h2>@ViewBag.Message</h2>
<h3>@WebPageContext.Current.Page.PageData.Count()</h3>
<h3>@PageData["MyName"]</h3>
<h3>@WebPageContext.Current.Page.PageData.Count()</h3>
@{ Html.RenderPartial("_Partial"); }
Parent view ends here
Run Code Online (Sandbox Code Playgroud)

部分查看代码

This is a partial view
<h3>@PageData["MyName"]</h3><-- Empty
<h3>@WebPageContext.Current.Page.PageData.Count()</h3>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor

5
推荐指数
0
解决办法
1154
查看次数

映射列表字典的替代方法?

我有一个简单的架构,如下所示:

这个想法是有用户,部门和流程.对于每个部门,用户可以"加注"多个流程以"标记"它们(因此部门/用户对可以有许多流程).

理想情况下,我想使用以下类:

public class User
{
    public virtual int Id { get; protected set; }
    public virtual string Name { get; set; }
}

public class Department
{
    public virtual int Id { get; protected set; }
    public virtual string Name { get; set; }
    public virtual IDictionary<User, IList<StarredFlow>> StarredFlows { get; protected set; }

    public Department()
    {
        this.UserStarredFlows = new Dictionary<User, IList<StarredFlow>>();
    }
}

public class Flow
{
    public virtual int Id { get; protected set; }
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# nhibernate fluent-nhibernate

5
推荐指数
1
解决办法
283
查看次数

与纵横比匹配的最小尺寸

我需要找到长宽比恰好(或在0.001以内)某个值的最小尺寸.这样做有什么快速的数学技巧或框架技巧吗?

这是我运行的当前坏主意的伪代码O(n^2):

epsilon = 0.001;

from x = 1 to MAX_X
{
  from y = 1 to MAX_Y
  {
    if(Abs(x / y - aspectRatio) <= epsilon)
    {
      return new Size(x, y);
    }
  }
}
return Size.Empty;
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm

4
推荐指数
1
解决办法
428
查看次数

反射器不反编译'System.Data.Entity.dll'.NET 4.0

在查看System.Data.Entity.dllfor .NET 4.0时,没有反编译方法.我只看到方法存根.我尝试重新安装反射器,但它仍然无法正常工作.我能够很好地反编译其他.NET程序集.

.net reflector .net-4.0

3
推荐指数
1
解决办法
1606
查看次数

根据Predicate <T>清除List <T>的最可靠方法

我有List<T> data和Predicate<T> condition.

我应该data根据condition结果使用什么方法来清除?

c# linq predicate list

3
推荐指数
1
解决办法
225
查看次数

FluentValidation即服务

我正在使用FluentValidation 2来验证某些实体.我想创建一个IValidationService我可以传递到其他服务,以允许他们执行验证.我想像这样揭露它:

public interface IValidationEngine
{
    IEnumerable<ValidationError> Validate<T>(T entity);
}
Run Code Online (Sandbox Code Playgroud)

哪个ValidationError类封装了我的验证错误.理想情况下,我不想在我的某个服务(例如OrderValidator)中公开特定的验证器.我希望验证服务能够构建/找到正确的验证器.FV是否内置了用于查找特定类型的验证器(以及内部缓存)的内容?或者,我是否必须走这IValidatorFactory条路线,然后将每个验证器连接到我的IoC容器?

.net c# fluentvalidation

3
推荐指数
1
解决办法
2129
查看次数

在不创建实现的情况下实现接口(动态代理?)

我一直在努力创建自己的IoC容器用于学习目的.在询问了几个关于它们的问题之后,我被证明创建一个"解决"对象的工厂是最好的解决方案(参见第三个解决方案).用户KrzysztofKoźmic表明Castle Windsor实际上可以为您实现这一点.

我整个上午都在阅读CW的来源.我知道当调用Resolve时,它会"返回界面".这个接口如何"拦截"调用(因为后面没有实现)并调用它自己的方法?

我知道这里有一些反思诡计,这真是太神奇了.我根本不是用户如何"拦截".我试着用git冒险从兔子洞里冒险,但我迷路了.如果有人能指出我正确的方向,那将非常感激.

另外 - 创建一个类型化的工厂是否会依赖于调用代码中的容器?在ASP.NET MVC术语中,这就是我所看到的.

编辑:发现Reflection.Emit ...这可能是什么用的?

EDIT2:我越来越关注这一点,自动创建工厂听起来越复杂.我可能最终只是坚持使用重复的代码.

c# reflection asp.net-mvc castle-windsor inversion-of-control

2
推荐指数
2
解决办法
2101
查看次数

使用OrderBy的存储库

我正在尝试创建一个存储库类,它具有一个基于"sort"参数对结果进行排序的方法.我需要将它作为参数传递,因为我试图非常严格,我的存储库不返回IQueryable并且只返回List.问题是我不知道如何制作它以满足以下要求:

  1. 允许多列.
  2. 强烈键入返回的实体(没有列作为参数的列).
  3. 能够将特定列设置为降序.

这是否可能,或者存储库是否允许返回订购?存储库是否应该只能执行CRUD操作?也许返回IQueryable是最好的选择?

c# linq asp.net-mvc

1
推荐指数
1
解决办法
2510
查看次数

.Net 4 SP 1还没出来?

我在哪里可以下载.Net 4.0的服务包#1?

我的经理说在SP1发布之前使用它"不安全".这是什么意思 ?请指教.

.net servicepacks .net-4.0

0
推荐指数
1
解决办法
1853
查看次数