对ServiceStack.NET的建议

时间:2013-02-18 12:17:52

标签: c# silverlight servicestack fluentvalidation hint

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

但是当谈到验证时,这有点烦人。 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();
        }
    }
}

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

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

我认为为了保持代码文件的清洁,它符合servicestack的利益。 但是在客户端和服务器上使用相同的验证迫使我这样做。

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

1 个答案:

答案 0 :(得分:2)

你很遗憾can't set a project-wide namespace alias。但是,您可以尝试使用内置样板代码的write a template for your validator class,然后您可以轻松点击添加 - &gt;新商品 - &gt;您的验证器模板。