Предложение для ServiceStack.NET

Предлагаемый способ использования 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 содержать файлы кода в чистоте. Но использование одной и той же проверки на клиенте и сервере заставляет меня это делать.

Если есть элегантный способ решить эту проблему, я хотел бы услышать об этом.


person MVCible    schedule 18.02.2013    source источник
comment
Есть ли лучшее решение для этого?   -  person MVCible    schedule 25.02.2013


Ответы (1)


К сожалению, вы не можете установить псевдоним пространства имен для всего проекта . Однако вы можете попробовать написать шаблон для вашего класса валидатора, в который встроен этот шаблонный код, и вы можете легко щелкнуть Добавить -> Новый элемент -> Ваш шаблон валидатора.

person CodeCaster    schedule 27.02.2013
comment
Большое спасибо за эту прекрасную идею! Вместо этого я использую шаблоны файлов Resharper, но это почти то же самое. В любом случае я бы посоветовал автору / разработчику servicestack изменить пространство имен, если это возможно, потому что это уменьшит эту проблему. - person MVCible; 27.02.2013