C# 对ServiceStack.NET的建议
建议将ServiceStack.NET与Silverlight一起使用的方法是使用链接的项目插件。这支持两个同步项目及其源,一个用于Silverlight,一个用于.NET 3.5+ 但当涉及到验证时,这就有点烦人了。 ServiceStack正在使用FluentValidation,这很酷。但它改变了名称空间。 因此,我最终得出以下结论:C# 对ServiceStack.NET的建议,c#,silverlight,servicestack,fluentvalidation,hint,C#,Silverlight,servicestack,Fluentvalidation,Hint,建议将ServiceStack.NET与Silverlight一起使用的方法是使用链接的项目插件。这支持两个同步项目及其源,一个用于Silverlight,一个用于.NET 3.5+ 但当涉及到验证时,这就有点烦人了。 ServiceStack正在使用FluentValidation,这很酷。但它改变了名称空间。 因此,我最终得出以下结论: using MyNamespace.Model; // HERE ---------------------------- #if SILVERLIGHT
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();
}
}
}
使用MyNamespace.Model;
//这里----------------------------
#如果银光
使用FluentValidation;
#否则
使用ServiceStack.FluentValidation;
#恩迪夫
//到这里------------------------
命名空间HR.RoBP.Contracts.Validators.Model
{
公共类CustomerValidator:AbstractValidator
{
公共CustomerValidator()
{
RuleFor(r=>r.Name).NotEmpty().NotNull();
}
}
}
这并不多,但每次编写一个新的验证器时,它都会得到真正的注释。我经常忘记它,编译,出错,修复它。
我知道ServiceStack.NET上的FluentValidation发生了一些变化
但它必须在一个单独的名称空间中吗
我认为保持代码文件干净符合servicestack的利益。
但在客户端和服务器上使用相同的验证迫使我这样做
如果有一个优雅的方法来解决这个问题,我很想听听。你很不幸。不过,您可以尝试使用内置的样板代码,并且可以轻松单击Add->New Item->Your Validator Template 有没有更好的解决办法?非常感谢你的好主意!我现在使用的是Resharper文件模板,但几乎是一样的。无论如何,如果可能的话,我建议servicestack的作者/开发人员更改名称空间,因为这样可以减少这个麻烦。