aceitável (ab) usar CoClassAttribute para fornecer uma implementação padrão para uma interfac

Descobri recentemente que é possível "novo" uma interface em C # decorando a interface com oCoClassAttribute para especificar uma implementação padrã

[ComImport, Guid("579A4F68-4E51-479A-A7AA-A4DDC4031F3F"), CoClass(typeof(FooImpl))]
public interface IFoo
{
    void Bar();
}

public class FooImpl : IFoo
{
    public void Bar() { }
}

...

// Constructs a FooImpl
IFoo foo = new IFoo();

Estou ciente de que esse recurso existe principalmente para oferecer suporte à interoperabilidade COM, mas eu queria saber se isso seria uma maneira razoável de associar interfaces a implementações padrão em bibliotecas de classes genérica

Eu tenho duas perguntas

Há alguma dica em fazer isso? Não sou especialista em interoperabilidade COM e não sei se isso terá algum impacto negativo nos POCOs. Não executei nenhum teste importante, mas a IL do meu exemplo parece ok (uma @ normnewobj instruções emFooImpl em vez de ligar paraType.GetTypeFromCLSID eActivator.CreateInstance).

Mesmo se isso funcionar sem problemas, existem outros motivos (digamos, sob uma perspectiva de design de API) para evitar iss

questionAnswers(2)

yourAnswerToTheQuestion