In principal, despre .NET, VB6. C#,VB.NET, ASP.NET Apoi despre programare si multe alte chestii ... de programare.

Subscribe RSS   Mini tools List

sâmbătă, decembrie 22, 2007

Late binding Outlook - VB.NET versus C#
Va rog sa folositi acest URL NOU de la
http://serviciipeweb.ro/iafblog/

Inca o data, cind e vorba de COM, VB este mult mai bun decit C#.
Incercam sa creez un email cu Late binding in C#:

Type app = Type.GetTypeFromProgID("Outlook.Application");
object oApp = Activator.CreateInstance(app);
object oNameSpace = app.GetMethod("GetNamespace").Invoke(oApp, new object[] { "MAPI" });
oNameSpace.GetType().GetMethod("Logon").Invoke(oNameSpace, new object[] { Type.Missing, Type.Missing, Type.Missing, Type.Missing});


Object mail = oApp.GetType().GetMethod("CreateItem").Invoke(oApp, new object[1] { 0 });
Type t = mail.GetType();
t.GetMethod("Display").Invoke(mail, new object[] { false });



Eroare....tipul t nu are metoda Display ...

Aproape acelasi cod, mai usor scris , in VB.NET

Dim app As Type = Type.GetTypeFromProgID("Outlook.Application")
Dim oApp As Object = Activator.CreateInstance(app)
Dim oNameSpace As Object = oApp.GetNamespace("MAPI")
oNameSpace.Logon()
Dim mail As Object = oApp.CreateItem(0)
mail.Display(False)


Normal ca merge ?

Diferentele intre ele dpdv IL ? Daca va uitati cu reflector la ceea ce genereaza VB.NET, o sa vedeti ca nu e pur si simplu Reflection chior - ci tot felul de incercari   in speranta de  a da peste metoda respectiva....


Concluzie:
Daca aveti de a  face cu COM(Office), faceti un DLL de VB.NET -iesiti mai ieftin si mai rapid si mai curat ( e.g., eliminarea Type.Missing)


Post page: http://serviciipeweb.ro/iafblog/2007/12/22/Late+Binding+Outlook+VBNET+Versus+C.aspx

Weblog post by 'admin' on 'Late binding Outlook - VB.NET versus C#'

Categories:.NET;programare;VB.NET versus C#

 
Acest blog s-a mutat la http://www.serviciipeweb.ro/iafblog/