Вот ответ:
public class ProxyBase
{
public string Message { get; set; }
public override string ToString()
{
return Message;
}
}
public static T OverrideToString<T>(this T ob, message) where T : class
{
var g = new ProxyGenerator();
var o = new ProxyGenerationOptions();
o.BaseTypeForInterfaceProxy = typeof(ProxyBase);
var proxied = g.CreateInterfaceProxyWithTarget(ob, o);
var baseProxy = proxied as ProxyBase;
baseProxy.Name = message;
return proxied;
}
Основным вариантом использования является параметризованный тест XUnit, в котором для запуска параметров используется метод ToString () по умолчанию. Если класс параметров не из нашей кодовой базы и мы не можем его унаследовать, это расширение можно использовать, чтобы дать ему понятное имя.