Com 和.NET
1.元数据。
COM中,所有信息都保存在类型库中,不能扩展。而.NET中,是用元数据来描述的, 可以利用定制属性方式进行扩展。
2. 内存释放
Com中,IUnknown接口是每个COM对象都要实现的接口,它提供3个方法,其中2个与引用数有关,如果需要另外一个接口指针,客户程序必须调用方法AddRef(),这个方法会递增,Rlease()方法会递减,如果引用数为0,则 对象销毁。
3.接口(定制接口,分派接口,双重接口)
接口是COM的核心,区分了客户对象和对象之间的契约和实现方式。
a. 定制接口
派生于IUnknown接口,定义了虚拟表的方法顺序,所以客户程序可以直接访问接口的方法。
b. 分派接口
在分派接口中,用于客户程序总是IDispatch接口. IDispatch 派生于IUnknown接口,除了IUnknown接口中2个方法外,还有四个方法,其中重要的为,GetIDsOfNames()会查找名称-ID表。返回分派ID,客户程序再使用这个ID调用方法Invoke().
COM中,所有信息都保存在类型库中,不能扩展。而.NET中,是用元数据来描述的, 可以利用定制属性方式进行扩展。
2. 内存释放
Com中,IUnknown接口是每个COM对象都要实现的接口,它提供3个方法,其中2个与引用数有关,如果需要另外一个接口指针,客户程序必须调用方法AddRef(),这个方法会递增,Rlease()方法会递减,如果引用数为0,则 对象销毁。
3.接口(定制接口,分派接口,双重接口)
接口是COM的核心,区分了客户对象和对象之间的契约和实现方式。
a. 定制接口
派生于IUnknown接口,定义了虚拟表的方法顺序,所以客户程序可以直接访问接口的方法。
b. 分派接口
在分派接口中,用于客户程序总是IDispatch接口. IDispatch 派生于IUnknown接口,除了IUnknown接口中2个方法外,还有四个方法,其中重要的为,GetIDsOfNames()会查找名称-ID表。返回分派ID,客户程序再使用这个ID调用方法Invoke().