2010-10-07 3 views
0

J'ai le code ci-dessous dans VBQuel est l'équivalent pour CreateObject de VB dans C# 3.0?

Private Sub RefreshCharts() 
On Error GoTo err_getICHELPER_REFRESH 
    Application.Cursor = xlWait 
    Dim objOperationRefresh 
    Set objOperationRefresh = CreateObject("Charting.AutomationProxy") 
    Dim a As Variant 
    Set a = Application 
    objOperationRefresh.RefreshApplication a 
    Application.StatusBar = "Refreshing .. " 
    Do While Len(objOperationRefresh.RefreshStatus) = 0 
     DoEvents 
    Loop 
    Application.StatusBar = "Refreshing Complete." 
    Set objOperationRefresh = Nothing 
    Application.StatusBar = "" 
    Exit Sub 
err_getICHELPER_REFRESH: 

Je l'ai fait la conversion en C#, sauf pour CreateObject("Charting.AutomationProxy"). Quel sera l'équivalent de celui de C# 3.0?

Merci

Répondre

3

Vous pouvez utiliser la réflexion:

Type type = Type.GetTypeFromProgID("Charting.AutomationProxy"); 
object instance = Activator.CreateInstance(type); 

Contrairement à VB et VB.NET, C# ne supporte pas les types dynamiques jusqu'à C# 4.0. Comme il s'agit d'un objet COM, une autre possibilité consiste à générer un wrapper fortement typé qui simplifiera grandement l'utilisation: dans la boîte de dialogue Ajouter une référence, sélectionnez le composant dans l'onglet Composants COM ou utilisez l'utilitaire tlbimp.exe.

Questions connexes