C# generic constraints code example
Example 1: c# multiple template constraints
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : MyClass
where TResponse : MyOtherClass
Example 2: csharp attributes as generics constraints
public static void Insert<T>(this IList<T> list, IList<T> items)
{
var attributes = typeof(T).GetCustomAttributes(typeof(InsertableAttribute), true);
if (attributes.Length == 0)
throw new ArgumentException("T does not have attribute InsertableAttribute");
}