/// <summary>
 /// Creates an object instance that derives from class <typeparamref name="TProxy"/>
 /// and implements interface <typeparamref name="T"/>.
 /// </summary>
 /// <typeparam name="T">The interface the proxy should implement.</typeparam>
 /// <typeparam name="TProxy">The base class to use for the proxy class.</typeparam>
 /// <returns>An object instance that implements <typeparamref name="T"/>.</returns>
 /// <exception cref="System.ArgumentException"><typeparamref name="T"/> is a class,
 /// or <typeparamref name="TProxy"/> is sealed or does not have a parameterless constructor</exception>
 public static T Create <T, TProxy>()
     where TProxy : DispatchProxy
 {
     return((T)DispatchProxyGenerator.CreateProxyInstance(typeof(TProxy), typeof(T)));
 }
 /// <summary>
 /// Creates an object instance that derives from class <typeparamref name="TProxy"/>
 /// and implements interface <typeparamref name="T"/>.
 /// </summary>
 /// <typeparam name="T">The interface the proxy should implement.</typeparam>
 /// <typeparam name="TProxy">The base class to use for the proxy class.</typeparam>
 /// <returns>An object instance that implements <typeparamref name="T"/>.</returns>
 /// <exception cref="System.ArgumentException"><typeparamref name="T"/> is a class,
 /// or <typeparamref name="TProxy"/> is sealed or does not have a parameterless constructor</exception>
 public static T Create <T, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] TProxy>()
     where TProxy : DispatchProxy
 {
     return((T)DispatchProxyGenerator.CreateProxyInstance(typeof(TProxy), typeof(T)));
 }