Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php on line 1077

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php on line 1077

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php on line 1079

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php on line 1079

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php on line 1079

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home3/weo2000/public_html/offeman.com/wp-content/plugins/backup/com/core/functions.php:1077) in /home3/weo2000/public_html/offeman.com/wp-includes/rest-api/class-wp-rest-server.php on line 1831
1.0WEO's Blog...https://offeman.comweo2000https://offeman.com/author/weo2000/OOP with WCF: Decorate DataContract with [KnownType(typeof(aType))] - WEO's Blog...rich600338<blockquote class="wp-embedded-content" data-secret="iDFNHB9w4t"><a href="https://offeman.com/oop-with-wcf-decorate-datacontract-with-knowntypetypeofatype/">OOP with WCF: Decorate DataContract with [KnownType(typeof(aType))]</a></blockquote><iframe sandbox="allow-scripts" security="restricted" src="https://offeman.com/oop-with-wcf-decorate-datacontract-with-knowntypetypeofatype/embed/#?secret=iDFNHB9w4t" width="600" height="338" title="“OOP with WCF: Decorate DataContract with [KnownType(typeof(aType))]” — WEO's Blog..." data-secret="iDFNHB9w4t" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"></iframe><script type="text/javascript"> /* <![CDATA[ */ /*! This file is auto-generated */ !function(d,l){"use strict";l.querySelector&&d.addEventListener&&"undefined"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i<o.length;i++)o[i].style.display="none";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute("style"),"height"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):"link"===t.message&&(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document); /* ]]> */ </script> WCF makes heavy use of reflection.  In order to support object inheritance one needs to help WCF by decorating DataContract with [KnownType(typeof(aType))] so the service reference will include the proper information.  Below is a quick example: The below data contract for an Animal also includes the known types of Cat and Dog: [DataContract] [KnownType(typeof(Cat))] [KnownType(typeof(Dog))] […]