通过混合模式内含包容重用
在这个模式中,托管类型使用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 */