Я бы попытался реализовать универсальный, не -генерический INamedProperty
, который мог бы реализовать необходимые операции:
interface INamedProperty
{
// Informational
Type ContainingType { get; }
string Name { get; }
Type ReturnType { get; }
// Operations (for example)
void CopyTo(object obj, INamedProperty property);
}
Затем реализоватьих в общем именованном свойстве:
class NamedProperty<T> : INamedProperty { ... }