Предлагаемый способ использования ServiceStack.NET с Silverlight - использовать надстройку Linked-Project. Это позволяет использовать два синхронных проекта и их источники: один для 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();
}
}
}
Это немного, но каждый раз, когда вы пишете новый валидатор, становится очень неприятно. Часто забываю, компилирую, есть ошибки, исправляю. Я знаю, что что-то изменилось в FluentValidation на ServiceStack.NET.
Но должно ли оно быть в отдельном пространстве имен?
Я думаю, что в интересах servicestack содержать файлы кода в чистоте. Но использование одной и той же проверки на клиенте и сервере заставляет меня это делать.
Если есть элегантный способ решить эту проблему, я хотел бы услышать об этом.