Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对ServiceStack.NET的建议_C#_Silverlight_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Fluentvalidation_Hint - Fatal编程技术网 servicestack,fluentvalidation,hint,C#,Silverlight,servicestack,Fluentvalidation,Hint" /> servicestack,fluentvalidation,hint,C#,Silverlight,servicestack,Fluentvalidation,Hint" />

C# 对ServiceStack.NET的建议

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

建议将ServiceStack.NET与Silverlight一起使用的方法是使用链接的项目插件。这支持两个同步项目及其源,一个用于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();
        }
    }
}
使用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的作者/开发人员更改名称空间,因为这样可以减少这个麻烦。