技术开发 频道

重用托管代码中的Classic COM 组件


通过混合模式内含包容重用

    在这个模式中,托管类型使用Classic COM中与内含包容相同的法则。它所作的就是中断元数据代理类型的实例,此元数据类型作为一个成员委托非托管 COM组件。无论什么时候它要求COM组件的服务时,它给组件方法发出请求。


通过Containment/Composition重用非托管 COM代码

    托管类型有能力在调用被包含的COM组件之前或者之后输入自己的代码。这里有一个例子:

Collapse
using System;
using MyFlyerMetadata;

.....

// 非托管 COM 组件
public class HangGlider
{
private Flyer flyer = new Flyer();

// 转发调用
public String TakeOff()
{
return flyer.TakeOff();
}

// 转发调用
public String Fly()
{
System.Console.WriteLine("In HangGlider::Fly - " +
"Before delegating to flyer.Fly");
return flyer.Fly();
}

}/*结束HangGlider类 */

public class FlightController
{
public static void Main(String[] args)
{
....

HangGlider glider = new HangGlider();
System.Console.WriteLine("HANGGLIDER: CLEARED TO TAKEOFF");
System.Console.WriteLine(glider.TakeOff());
System.Console.WriteLine(glider.Fly());

}/* 结束 Main */

}/* 结束 FlightController */

0
相关文章