Что эквивалентно для CreateObject VB в c # 3.0? - PullRequest
0 голосов
/ 07 октября 2010

У меня есть следующий код в VB

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:

Я сделал преобразование в C # за исключением CreateObject("Charting.AutomationProxy"). Что будет эквивалентно тому, что в C # 3.0?

Спасибо

1 Ответ

3 голосов
/ 07 октября 2010

Вы можете использовать отражение:

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

В отличие от VB и VB.NET, C # не поддерживает динамические типы до C # 4.0. Поскольку это COM-объект, другой возможностью является создание строго типизированной оболочки, которая значительно упростит использование: в диалоговом окне «Добавить ссылку» выберите компонент на вкладке «COM-компоненты» или используйте утилиту tlbimp.exe . *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...