# Interface定義のメンバがFilterで使えない

**URL:** <https://discuss.elastic.co/t/interface-filter/238194>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [June 23, 2020, 5:46am UTC](https://discuss.elastic.co/t/interface-filter/238194 "2020-06-23T05:46:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rh-51662](https://avatars.discourse-cdn.com/v4/letter/r/ad7895/32.png) [@rh-51662](https://discuss.elastic.co/u/rh-51662)\
**Post date:** [June 23, 2020, 5:46am UTC](https://discuss.elastic.co/t/interface-filter/238194/1 "2020-06-23T05:46:31Z")

</div>

C#でElasticsearchを操作しています。  
インストールしているElasticsearchのVersionは6.2.3  
C#のElasticsearch.NetのVersionは6.8.6

SourceFilterDescriptorを指定しなければ想定通りのデータが取得できますが、Interfaceで定義しているFieldをSourceFilterDescriptorで指定すると以下Errorが出て取得できません。  
`Could not create an instance of type Test.Data.ITestInterface. Type is an interface or abstract class and cannot be instantiated.`

Interfaceで定義されているFieldをSourceFilterDescriptorで指定する際には何か指定が必要なのでしょうか。

Interface定義部

```auto
    [JsonObject(ItemTypeNameHandling = TypeNameHandling.Auto)]
    public interface ITestInterface 

```

クラスの対象メンバ定義部

```auto
        [Nested(Name = "test_data")]
        [JsonProperty("test_data", ItemTypeNameHandling = TypeNameHandling.Auto)]
        public ITestInterface A { get; set; }

```

処理部

```auto
    SourceFilterDescriptor<T> filter.Includes(fi => fi
                .Field(f => f.A)
            );

    var response
        = elasticClient
            .Search<T>(
                s => s.Index(index)
                     .From(0)
                     .Size(maxSearchSize)
                     .Scroll(scrollTime)
                     .Source(sr => filter)
                     .Query(q => query));

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 21, 2020, 5:55am UTC](https://discuss.elastic.co/t/interface-filter/238194/2 "2020-07-21T05:55:45Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
