Это было связано с тем, что библиотеки для утиной печати, которые я могу найти для C#, все разрушают идентификатор объекта, то есть Object.ReferenceEquals
возвращает false для объекта с утиным шрифтом и его исходного объекта.Библиотека утиной для C#, которая не нарушает идентификатор объекта?
У меня возникло ощущение, что на C# невозможно получить решение с оболочкой/прокси-меньшим, но надеясь, что я ошибаюсь, кто-нибудь знает библиотеку, которая не нарушает эту принципиальную концепцию OO?
Edit, пример кода было предложено:
public class MyClass
{
private SomeInterface _someInterface;
// Dynamic is possible here but the type safety is helpful
// when having multiple constructors, for example.
public MyClass(AnotherClass c)
{
_someInterface = c.ActLike<SomeInterface>();
Trace.Assert(object.ReferenceEquals(c, _someInterface));
}
}
Не могли бы вы привести пример того, чего вы на самом деле пытаетесь достичь? Например, не могли бы вы просто использовать 'dynamic' из C# 4? –
Я с @Jon. Dynamic - это метафорическая метка утки .net, она, конечно же, не вызовет object.ReferenceEquals сбой. –
@TonyHopkinson :) «Я с Джоном» ... Конечно, вы есть, кто нет :) Это Джон :))) –