2013-02-18 76 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