Convertendo objeto COM para objeto .Net

O fato de um objeto ser um objeto COM não é um problema. Não é preciso converter em um objeto .NET pois ele já é um. O desenvolvedor deve atentar-se a apossar as propriedades deste objeto como é feito em qualquer outro objeto .NET para o qual não tem informaçãoes sobre o tipo.
Exemplo:

[soucecode=”csharp”]

var objectType = obj.GetType();

foreach(var prop in objectType.GetProperties())
{
    Console.WriteLine("Propriedade {0} do tipo {1}",prop.Name, prop.PropertyType.Name);
}

[/sourcecode]

Para invocar uma propriedade voce pode usar o  metodo (“InvokeMember do tipo da classe”) e setar como “Visivel” o seu objeto.

<pre><code>objectType.InvokeMember("Visible", BindingFlags.SetProperty, null, obj, new object[] { true });</code></pre>

Se você estiver usando o framework 4 ou 4.5, pode utilizar do recurso de dynamic para realizar o trabalho de uma forma mais simplificada.

<pre><code>var tipo = Type.GetTypeFromProgID("Excel.Application");

dynamic objetoDynamic = Activator.CreateInstance(</code><code>tipo</code><code>);
</code>
<code>objetoDynamic</code>.Visible = true;</pre>

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s