title: FluentValidation how to create common part
body: <p>I have an abstract (it's no matter) class:</p>
  
  <pre><code>public abstract class CarrierAbstractFormAPI
  {
      public string Name { get; set; }
      public string Fein { get; set; }
      public string McNumber { get; set; }
      public string DotNumber { get; set; }
  
      public AddressCreateAPI Address { get; set; }
  }
  </code></pre>
  
  <p>and AddressCreateAPI class:</p>
  
  <pre><code>public class AddressCreateAPI
  {
      public string Street { get; set; }
      public string City { get; set; }
      public string ZipPostalCode { get; set; }
      public int StateProvinceId { get; set; }
      public string ContactName { get; set; }
      public string ContactPhone { get; set; }
      public string ContactFaxNumber { get; set; }
      public string ContactEmail { get; set; }
  }
  </code></pre>
  
  <p>My Validator:</p>
  
  <pre><code>public abstract class CarrierAbstractFluentValidation&lt;T&gt; : AbstractValidator&lt;T&gt; where T : CarrierAbstractFormAPI
  {
      public CarrierAbstractFluentValidation()
      {
          RuleFor(d =&gt; d.Name)
              .NotEmpty().WithMessage("Name is required");
  
          RuleFor(d =&gt; d.Fein)
              .NotEmpty().WithMessage("Fein is required");
  
          RuleFor(d =&gt; d.McNumber)
              .NotEmpty().WithMessage("McNumber is required");
  
          RuleFor(d =&gt; d.DotNumber)
              .NotEmpty().WithMessage("DotNumber is required");
  
          RuleFor(d =&gt; d.Address.Street)
              .NotEmpty().WithMessage("Address Street is required");
  
          RuleFor(d =&gt; d.Address.City)
              .NotEmpty().WithMessage("Address City is required");
  
          RuleFor(d =&gt; d.Address.StateProvinceId)
              .InclusiveBetween(0, int.MaxValue).WithMessage("Address State is required");
  
      }
  }
  </code></pre>
  
  <p>It works fine.
  But I have some additional classes, which can have </p>
  
  <pre><code>public AddressCreateAPI Address { get; set; }
  </code></pre>
  
  <p>property. 
  I want to move a part:</p>
  
  <pre><code>        RuleFor(d =&gt; d.Address.Street)
              .NotEmpty().WithMessage("Address Street is required");
  
          RuleFor(d =&gt; d.Address.City)
              .NotEmpty().WithMessage("Address City is required");
  
          RuleFor(d =&gt; d.Address.StateProvinceId)
              .InclusiveBetween(0, int.MaxValue).WithMessage("Address State is required");
  </code></pre>
  
  <p>to common class and the apply it in every my fluent validator, which has property Address. How to do it?</p>