title: DataSourceRequest is not deserializing for a WebAPI Get method
body: <p>I am trying to call a WebAPI method from Angular 5 like this:</p>
  
  <pre><code>selectClaims(state: DataSourceRequestState):Observable&lt;DataResult&gt;
  {
      return this.http.get&lt;GridDataResult&gt;(`${this.apiUrl}/SelectClaims?${toDataSourceRequestString(state)}`);
  }
  </code></pre>
  
  <p>Which calls the API method as expected. The API method is:</p>
  
  <pre><code>    [Route("SelectClaims")]
      [HttpGet]
      public IHttpActionResult SelectClaims([FromUri][DataSourceRequest]DataSourceRequest ClaimsRequest)
          {
          if(ClaimsRequest == null)
              ClaimsRequest=new DataSourceRequest { Page=1, PageSize=20 };
          var result = _db.Claims.ToDataSourceResult(ClaimsRequest, c =&gt; { c.SortHistory(); return c; });
          return Ok(result);
          }
  </code></pre>
  
  <p>The trouble is that ClaimsRequest only de-serializes Page and PageSize correctly. Filters and Sorts don't come through:</p>
  
  <p>Fiddler tells me that the URL from Angular is:
  <code>GET /api/v1/Claims/SelectClaims?filter=id~eq~2&amp;page=1&amp;sort=firstName-asc&amp;pageSize=20 HTTP/1.1</code>, but in the controller both filter and sort are null.</p>
  
  <p>If I create a URL through Swagger like: '<a href="http://localhost:50223/api/v1/Claims/SelectClaims?ClaimsRequest.page=1&amp;ClaimsRequest.pageSize=11&amp;ClaimsRequest.sorts=firstName-desc" rel="nofollow noreferrer">http://localhost:50223/api/v1/Claims/SelectClaims?ClaimsRequest.page=1&amp;ClaimsRequest.pageSize=11&amp;ClaimsRequest.sorts=firstName-desc</a>' I do see a sort array in the API method, but the "Member" field is null.</p>
  
  <p>Any attempt to add a filter through Swagger like '<a href="http://localhost:50223/api/v1/Claims/SelectClaims?ClaimsRequest.page=1&amp;ClaimsRequest.pageSize=11&amp;ClaimsRequest.filters=id~eq~2" rel="nofollow noreferrer">http://localhost:50223/api/v1/Claims/SelectClaims?ClaimsRequest.page=1&amp;ClaimsRequest.pageSize=11&amp;ClaimsRequest.filters=id~eq~2</a>' results in a "Cannot create an instance of an interface." error.</p>
  
  <p>The state is a <code>DataSourceRequestState</code> in the angular component from a Kendo Grid for Angular.</p>
  
  <p>I have simulated this in a simple test program and everything works fine there. The only difference in my test program is that the API controller targets .Net Core and the real system targets .Net 4.6.1.</p>
  
  <p>Do I have to de-serialize manually in .Net 4.6.1 for some reason, or is something else going on here?</p>