小编Dan*_* T.的帖子

我应该将验证逻辑放在POCO中吗?

假设我有一个像这样的POCO:

public class Name
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

FirstName和LastName不能为null.我应该添加这样的方法:

public List<Error> Validate()
{
    var errors = new List<Error>();

    if (String.IsNullOrEmpty(FirstName))
        errors.Add(new Error("FirstName", "You must fill out first name."));
    if (String.IsNullOrEmpty(LastName))
        errors.Add(new Error("LastName", "You must fill out last name."));
}
Run Code Online (Sandbox Code Playgroud)

where Error是包含a的结构NameValueDictionary.这是一种很好的做事方式吗?我可能会发现存储库存在问题,有人试图保存此POCO而不先运行它Validate().

c# validation asp.net-mvc poco

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

有没有办法在ASP.NET MVC 3 RC2中禁用JSON ModelBinder?

在ASP.NET MVC 3 RC2中,默认的ModelBinder将自动解析请求正文(如果Content-Type设置为)application/json.问题是,这留下Request.InputStream了流的末尾.这意味着如果您尝试使用自己的代码读取输入流,则首先将其重置为开头:

// client sends HTTP request with Content-Type: application/json and a JSON
// string in the body

// requestBody is null because the stream is already at the end
var requestBody = new StreamReader(Request.InputStream).ReadToEnd();

// resets the position back to the beginning of the input stream
var reader = new StreamReader(Request.InputStream);
reader.BaseStream.Position = 0;
var requestBody = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

因为我正在使用Json.NET序列化/反序列化,所以我想禁用默认的ModelBinder进行额外的解析.有没有办法做到这一点?

c# asp.net-mvc httpwebrequest modelbinders asp.net-mvc-3

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

Json.NET可以用点表示法反序化扁平的JSON字符串吗?

我有一个扁平的JSON:

{
    "CaseName" : "John Doe v. State",
    "CaseDate" : "<some date>",
    "Client.FirstName" : "John",
    "Client.LastName" : "Doe",
    "Client.Email" : "johndoe@gmail.com"
    etc...
}
Run Code Online (Sandbox Code Playgroud)

我想将它反序列化回这个实体:

public class Case()
{
    public string CaseName { get; set; }
    public string CaseDate { get; set; }
    public Client Client { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

where Client.FirstName,Client.LastNameClient.EmailClient对象中的属性.使用Json.NET,有没有办法让它解析点符号并正确反序列化这个实体?目前,使用默认设置,它告诉我这Client.FirstName不是类型中的属性Case.

syntax serialization json.net

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

如何确定使用哪个字体文件,而不仅仅是字体系列?

假设我有以下字体外观定义:

@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/open-sans.regular.woff") format("woff");
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/open-sans.light.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/open-sans.semibold.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/open-sans.bold.woff') format('woff');
}
Run Code Online (Sandbox Code Playgroud)

在Chrome的开发工具中,我可以分辨出正在使用的字体系列:

在此输入图像描述

但有没有办法告诉使用哪个特定的字体文件?我正在尝试验证浏览器实际上是使用字体的粗体版本,例如,而不是在常规版本的字体上执行自己的"假"粗体.

css css3 font-face google-chrome-devtools

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

如何在ASP.NET MVC路由中使用HttpMethodConstraint的自定义约束?

我有一个控制器只接受此URL上的POST:

POST http://server/stores/123/products
Run Code Online (Sandbox Code Playgroud)

POST应该是content-type application/json,所以这就是我在路由表中的内容:

routes.MapRoute(null,
                "stores/{storeId}/products",
                new { controller = "Store", action = "Save" },
                new {
                      httpMethod = new HttpMethodConstraint("POST"),
                      json = new JsonConstraint()
                    }
               );
Run Code Online (Sandbox Code Playgroud)

在哪里JsonConstraint:

public class JsonConstraint : IRouteConstraint
{
    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
    {
        return httpContext.Request.ContentType == "application/json";
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用这条路线时,我得到了一个405 Forbidden:

The HTTP verb POST used to access path '/stores/123/products' is not allowed

但是,如果我删除json = new JsonConstraint()约束,它工作正常.有人知道我做错了什么吗?

asp.net-mvc routing asp.net-mvc-routing

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

有没有办法阻止WPF CheckBox触发其Checked事件?

我有一组WPF CheckBoxes,它们有一个Checked事件处理程序,当用户点击其中一个时,它处理一些逻辑.但是,我还有一个"全部清除"按钮,单击该按钮将清除所有复选框.如果用户点击"全部清除"按钮,我不希望复选框触发他们的Checked事件.有办法做到这一点吗?

wpf checkbox events event-handling

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

如何使用Fluent NHibernate映射自引用文件夹层次结构?

我有一个由以下类表示的文件夹层次结构:

public class Folder
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual Folder ParentFolder { get; set; }
    public virtual ICollection<Folder> SubFolders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,每个都Folder可以属于一个ParentFolder,也可以属于SubFolders它.我正在使用Fluent NHibernate Automapper并使用自动生成数据库模式SchemaExport.当我尝试保存一些测试文件夹时,我得到下表:

Id | Name                        | ParentFolder_id | Folder_id
----------------------------------------------------------------
1  | Root Folder (has children)  | NULL            | NULL
2  | Root Folder (no children)   | NULL            | NULL
3  | …
Run Code Online (Sandbox Code Playgroud)

c# mapping nhibernate nhibernate-mapping fluent-nhibernate

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

如何从CFCin ColdFusion返回低级JSON?

我有一个ColdFusion组件,它将返回一些JSON数据:

component
{
    remote function GetPeople() returnformat="json"
    {
        var people = entityLoad("Person");
        return people;
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,返回的JSON具有大写的所有属性名称:

[
    {
        FIRSTNAME: "John",
        LASTNAME: "Doe"
    },
    {
        FIRSTNAME: "Jane",
        LASTNAME: "Dover
    }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法强制框架返回JSON,以便属性名称都是小写的(可能是其他人编写的自定义UDF/CFC)?

coldfusion json case-sensitive coldfusion-9

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

如何处理在.NET中使用多种货币的国家/地区?

我有一个应用程序,我想使用国家/地区的本机货币格式来格式化货币.问题是,某些国家/地区使用多种货币,但.NET仅为每个国家/地区分配一种货币.例如,罗马尼亚使用EURRON.当我从.NET获取货币信息时:

var cultureInfo = new CultureInfo("ro-RO");
Console.WriteLine("cultureInfo.NumberFormat.CurrencySymbol);
Run Code Online (Sandbox Code Playgroud)

输出是leu,这是RON货币类型.

我如何在.NET中获得此案例的欧元?我有3个字母的ISO货币代码(EUR)和国家语言(ro-RO),但我不知道如何使用此信息来获取格式正确的欧元货币字符串.

c# asp.net currency internationalization .net-3.5

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

使用Hibernate的二级缓存有什么缺点?

我看到很多文章说在Hibernate中使用二级缓存会提高性能,但对使用它的缺点却没有太大帮助.我不想将二级缓存视为一种神奇的"在这里启用免费更好的性能!" 按钮.任何人都可以描述使用二级缓存的缺点,以便我能够意识到使用它的含义吗?

caching hibernate

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