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 に何か変更があることは知っています。
しかし、それは別の名前空間にある必要がありますか?
コードファイルをきれいに保つことは、サービススタックの利益になると思います。しかし、クライアントとサーバーで同じ検証を使用すると、これを行う必要があります。
この問題を解決するエレガントな方法がある場合は、ぜひお知らせください。