您的位置: 旅游网 > 明星 >> 谢娜

绑定自动化服务器二牛

发布时间:2021-10-28 05:26:02

吴锡铭因涉嫌职务侵占罪被逮捕 晚期绑定

与早期绑定不同,晚期绑定要等到运行时才会将属性和方法调用绑定到它们的对象。为此,目标对象必须实现一个特殊的 COM 接口:IDispatch。利用 IDispatch::GetIDsOfNames 方法,Visual C# 可以询问对象支持哪些方法和属性,然后,IDispatch::Invoke 方法允许 Visual C# 调用这些方法和属性。这种晚期绑定的优点是:它消除了早期绑定所固有的某些版本依赖性。然而,它也有以下缺点:省略了对自动化代码完整性的编译时检查,也不提供“智能感知”功能(该功能可提供有助于正确调用方法和属性的提示)。

要在 Visual C# 中使用晚期绑定,请使用 vokeMember 方法。此方法调用 IDispatch::GetIDsOfNames 和 IDispatch::Invoke 来绑定到自动化服务器的方法和属性。

创建使用晚期绑定的自动化客户端

启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。从 Visual C# 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。

在视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。

双击 Button1。将出现该窗体的代码窗口。

在代码窗口中,将以下代码 private void button1_Click(object sender, entArgs e)

{

}

替换为:private void button1_Click(object sender, entArgs e)

{

object objApp_Late;

object objBook_Late;

object objBooks_Late;

object objSheets_Late;

object objSheet_Late;

object objRange_Late;

object[] Parameters;

try

{

// Instantiate Excel.

objApp_Late = (object)new plication();

//Get the workbooks collection.

objBooks_Late = objApp_tType().InvokeMember( \"Workbooks\",

tProperty, null, objApp_Late, null );

//Add a new workbook.

objBook_Late = objBooks_tType().InvokeMember( \"Add\",

vokeMethod, null, objBooks_Late, null );

//Get the worksheets collection.

objSheets_Late = objBook_tType().InvokeMember( \"Worksheets\",

tProperty, null, objBook_Late, null );

//Get the first worksheet.

Parameters = new Object[1];

Parameters[0] = 1;

objSheet_Late = objSheets_tType().InvokeMember( \"Item\",

tProperty, null, objSheets_Late, Parameters );

//Get a range object that contains cell A1.

Parameters = new Object[2];

Parameters[0] = \"A1\";

Parameters[1] = lue;

objRange_Late = objSheet_tType().InvokeMember( \"Range\",

tProperty, null, objSheet_Late, Parameters );   //Write \"Hello, World!\" in cell A1.

Parameters = new Object[1];

Parameters[0] = \"Hello, World!\";

objRange_tType().InvokeMember( \"Value\", tProperty,

null, objRange_Late, Parameters );

//Return control of Excel to the user.

Parameters = new Object[1];

Parameters[0] = true;

objApp_tType().InvokeMember( \"Visible\", tProperty,

null, objApp_Late, Parameters );

objApp_tType().InvokeMember( \"UserControl\", tProperty,

null, objApp_Late, Parameters );

}

catch( Exception theException )

{

String errorMessage;

errorMessage = \"Error: \";

errorMessage = ncat( errorMessage, ssage );

errorMessage = ncat( errorMessage, \" Line: \" );

errorMessage = ncat( errorMessage, urce );

ow( errorMessage, \"Error\" );

}

}

滚动到代码窗口的顶部。将下面的代码行添加到 using 指令列表的末尾:using flection; 查看本文来源

胃溃疡怎么治疗
无锡白癜风哪里治疗好
小孩积食怎么调理脾胃
猜你会喜欢的
猜你会喜欢的