﻿<?xml version="1.0" encoding="utf-8"?><Type Name="IExtensibleObject&lt;T&gt;" FullName="System.ServiceModel.IExtensibleObject&lt;T&gt;"><TypeSignature Language="C#" Value="public interface IExtensibleObject&lt;T&gt; where T : IExtensibleObject&lt;T&gt;" /><TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IExtensibleObject`1&lt;(class System.ServiceModel.IExtensibleObject`1&lt;!T&gt;) T&gt;" /><AssemblyInfo><AssemblyName>System.ServiceModel</AssemblyName><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><TypeParameters><TypeParameter Name="T"><Constraints><InterfaceName>System.ServiceModel.IExtensibleObject&lt;T&gt;</InterfaceName></Constraints></TypeParameter></TypeParameters><Interfaces /><Docs><typeparam name="T">To be added.</typeparam><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Implement <see cref="T:System.ServiceModel.IExtensibleObject`1" /> to enable aggregation of extensions.</para><para>For example, if you are implementing a TreeNode class and want to allow external code to add annotations and methods to some instances of TreeNode, you can have TreeNode implement IExtensibleObject&lt;TreeNode&gt;. This enables code that uses TreeNode to add objects that implement IExtensibleObject&lt;TreeNode&gt; to the <see cref="P:System.ServiceModel.IExtensibleObject`1.Extensions" /> collection.</para><para>There are four extensible objects in indigo1:</para><list type="bullet"><item><para><see cref="T:System.ServiceModel.ServiceHostBase" /></para></item><item><para><see cref="T:System.ServiceModel.InstanceContext" /></para></item><item><para><see cref="T:System.ServiceModel.IContextChannel" /></para></item><item><para><see cref="T:System.ServiceModel.OperationContext" /></para></item></list><para>For a discussion about how to create extension to work with these objects, see <format type="text/html"><a href="bc88cefc-31fb-428e-9447-6d20a7d452af">Extensible Objects</a></format>.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Enable an object to participate in custom behavior, such as registering for events, or watching state transitions.</para></summary></Docs><Members><Member MemberName="Extensions"><MemberSignature Language="C#" Value="public System.ServiceModel.IExtensionCollection&lt;T&gt; Extensions { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.ServiceModel.IExtensionCollection`1&lt;!T&gt; Extensions" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.ServiceModel.IExtensionCollection&lt;T&gt;</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a collection of extension objects for this extensible object.</para></summary></Docs></Member></Members></Type>