3

Silverlight で ServiceStack.NET を使用する推奨される方法は、Linked-Project アドオンを使用することです。これにより、2 つの同期プロジェクトとそのソース (1 つは Silverlight 用、もう 1 つは .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 に何か変更があることは知っています。

しかし、それは別の名前空間にある必要がありますか?

コードファイルをきれいに保つことは、サービススタックの利益になると思います。しかし、クライアントとサーバーで同じ検証を使用すると、これを行う必要があります。

この問題を解決するエレガントな方法がある場合は、ぜひお知らせください。

4

1 に答える 1

2

残念ながら、プロジェクト全体の名前空間エイリアスを設定することはできません。ただし、ボイラープレート コードが組み込まれているバリデーター クラスのテンプレートを作成してみると、[追加] -> [新しいアイテム] -> [バリデーター テンプレート] をクリックするだけで簡単に実行できます。

于 2013-02-27T16:00:34.583 に答える