﻿<?xml version="1.0" encoding="utf-8"?><Type Name="IExtension&lt;T&gt;" FullName="System.ServiceModel.IExtension&lt;T&gt;"><TypeSignature Language="C#" Value="public interface IExtension&lt;T&gt; where T : IExtensibleObject&lt;T&gt;" /><TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IExtension`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>indigo2 allows you to extend <see cref="T:System.ServiceModel.IExtensibleObject`1" /> objects (the <see cref="T:System.ServiceModel.IContextChannel" />, <see cref="T:System.ServiceModel.ServiceHost" />, <see cref="T:System.ServiceModel.InstanceContext" />, and <see cref="T:System.ServiceModel.OperationContext" /> classes) by adding a new state or behavior by using its extensible object pattern. The extensible object pattern is used in indigo2 to either extend existing run-time classes with new functionality or to add new state features to an object. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Enables an object to extend another object through aggregation.</para></summary></Docs><Members><Member MemberName="Attach"><MemberSignature Language="C#" Value="public void Attach (T owner);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Attach(!T owner) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="owner" Type="T" /></Parameters><Docs><param name="owner">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Detach"><MemberSignature Language="C#" Value="public void Detach (T owner);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Detach(!T owner) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="owner" Type="T" /></Parameters><Docs><param name="owner">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member></Members></Type>