<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:36:16 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CSHARP-247] Support deserializing to an interface</title>
                <link>https://jira.mongodb.org/browse/CSHARP-247</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;Suppose you have the following interface and class:&lt;/p&gt;

&lt;p&gt;public interface I {&lt;br/&gt;
    int X &lt;/p&gt;
{ get; set; }&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
public class C : I {&lt;br/&gt;
    public ObjectId Id { get; set; }
&lt;p&gt;    public int X &lt;/p&gt;
{ get; set; }
&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;If you insert an instance of C using the interface as the nominal type:&lt;/p&gt;

&lt;p&gt;var c = new C &lt;/p&gt;
{ X = 1 }
&lt;p&gt;;&lt;br/&gt;
collection.Insert&amp;lt;I&amp;gt;(c);&lt;/p&gt;

&lt;p&gt;The serializer adds a _t discriminator, so the inserted document looks like:&lt;/p&gt;

{ &quot;_id&quot; : ObjectId(&quot;4df615dce447ad9c44335d73&quot;), &quot;_t&quot; : &quot;C&quot;, &quot;X&quot; : 1 }

&lt;p&gt;but a subsequent attempt to read this document back using the interface as the nominal type fails:&lt;/p&gt;

&lt;p&gt;collection.FindOneAs&amp;lt;I&amp;gt;();&lt;/p&gt;

&lt;p&gt;with the exception: &quot;No serializer found for type TestDeserializeInterface.I.&quot;.&lt;/p&gt;

&lt;p&gt;While it is true that deserialization &lt;b&gt;must&lt;/b&gt; always be to an instance of a concrete class, in this case the deserializer &lt;b&gt;should&lt;/b&gt; be able to figure out which concrete class to use by looking at the discriminator value.&lt;/p&gt;
</description>
                <environment></environment>
        <key id="18204">CSHARP-247</key>
            <summary>Support deserializing to an interface</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="robert@mongodb.com">Robert Stam</reporter>
                        <labels>
                    </labels>
                <created>Mon, 13 Jun 2011 13:52:14 +0000</created>
                <updated>Thu, 2 Apr 2015 18:28:13 +0000</updated>
                            <resolved>Wed, 22 Jun 2011 17:51:19 +0000</resolved>
                                    <version>1.0</version>
                                    <fixVersion>1.2</fixVersion>
                                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="38780" author="rstam" created="Wed, 22 Jun 2011 17:51:19 +0000"  >&lt;p&gt;Implemented.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrh8tz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14230</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>