2013-02-18 74 views
3

在Silverlight中使用ServiceStack.NET的建议方式是使用Linked-Project插件。这将启用两个同步项目及其来源,一个用于Silverlight,一个用于.NET 3.5+。对ServiceStack.NET的建议

但是,当涉及到验证时,这会让人有些恼火。 ServiceStack使用FluentValidation,这很酷。但它改变了命名空间。 所以我结束了:

using MyNamespace.Model; 

// HERE ---------------------------- 
#if SILVERLIGHT 
using FluentValidation; 
#else 
using ServiceStack.FluentValidation; 
#endif 
//TO HERE------------------------ 

namespace HR.RoBP.Contracts.Validators.Model 
{ 
    public class CustomerValidator : AbstractValidator<Customer> 
    { 
     public CustomerValidator() 
     { 
      RuleFor(r => r.Name).NotEmpty().NotNull(); 
     } 
    } 
} 

这并不多,但每次写一个新的验证,当它变得非常annoing。我经常忘记它,编译,有错误,修复它。 我知道ServiceStack.NET上的FluentValidation有一些变化。

但是它必须在一个单独的命名空间吗?

我认为它有助于维护代码文件的清洁。 但在客户端和服务器上使用相同的验证迫使我这样做。

如果有一个优雅的方法来解决这个问题,我很乐意听到它。

+0

有没有更好的解决方案呢? – MVCible 2013-02-25 15:32:52

回答

2

您不幸的是can't set a project-wide namespace alias。然而,您可以尝试write a template for your validator class,该代码内置了样板代码,您可以轻松地单击添加 - >新建项目 - >验证模板。

+0

非常感谢你,为了这个好主意!我现在使用Resharper文件模板代替它,但它几乎是一样的。 无论如何,如果可能的话,我会建议servicestack的作者/开发人员更改命名空间,因为它会减少这种麻烦。 – MVCible 2013-02-27 16:24:21