C# 封送IEnumVARIANT:在blob中引用CustomMarshalers.dll?
假设我有以下C#代码,它接受带有IEnumVARIANT接口的COM对象:C# 封送IEnumVARIANT:在blob中引用CustomMarshalers.dll?,c#,.net,clr,marshalling,com-interop,C#,.net,Clr,Marshalling,Com Interop,假设我有以下C#代码,它接受带有IEnumVARIANT接口的COM对象: public void EnumeratorParameter( [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(EnumeratorToEnumVariantMarshaler))] IEnumerator enumerator) { } 要封送它,我需要添加对CustomMarshalers.dll库
public void EnumeratorParameter(
[MarshalAs(UnmanagedType.CustomMarshaler,
MarshalTypeRef = typeof(EnumeratorToEnumVariantMarshaler))]
IEnumerator enumerator) { }
要封送它,我需要添加对CustomMarshalers.dll库的引用。但是,与
mscorlib.dll
不同,此库不是在withAssemblyRef
元数据表中引用的,而是通过FieldMarshal
表在blob堆中引用的。为什么使用通过blob的引用?因为引用出现在[属性]中。实例化属性类时使用的属性数据存储在blob表中。更多关于这方面的信息,请参阅