缺少互操作数据异常类 (.NET Native)
适用于 Windows 10 的 Windows 应用的 .NET(仅限 .NET Native)
当手动封送方法被调用但一个类型的元数据无法通过动态分析找到或无法在运行时指令文件中找到时,会引发该异常。
命名空间:System.Runtime.CompilerServices
重要
MissingInteropDataException
类仅供 .NET Native 工具链内部使用。 它不用于在第三方代码中使用,也不应用它处理应用程序代码中的异常。 相反,你可以通过将条目添加到运行时指令文件来消除异常。 有关详细信息,请参阅“备注”部分。
语法
public class MissingInteropDataException : Exception
MissingInteropDataException
类包含以下成员:
构造函数
构造函数 | 说明 |
---|---|
public MissingInteropDataException(String resourceId, Type pertinentType) |
通过使用系统提供的消息(该消息描述错误以及缺少数据的类型)的 ID 初始化 MissingInteropDataException 类的新实例。 此构造函数仅供 .NET Native 工具链内部使用。 |
属性
属性 | 说明 |
---|---|
public IDictionary Data { get; } |
获取键/值对的集合,这些键/值对提供有关该异常的其他用户定义信息。 (从 System.Exception 继承。) |
public string HelpLink { get; set; } |
获取或设置指向与此异常关联的帮助文件链接。 (从 System.Exception 继承。) |
public int HResult { get; protected set; } |
获取或设置分配给特定异常的编码数值 HRESULT 。 (从 System.Exception 继承。) |
public Exception InnerException { get; } |
获取导致当前异常的异常。 (从 System.Exception 继承。) |
public string Message { get; } |
获取描述当前异常的消息。 (从 System.Exception 继承。) |
public Type MissingType { get; private set; } |
获取或设置丢失数据的类型。 |
public string Source { get; set; } |
获取或设置引起错误的应用或对象名。 (从 System.Exception 继承。) |
public string StackTrace { get; } |
获取调用堆栈上的即时框架字符串表示形式。 (从 System.Exception 继承。) |
public MethodBase TargetSite { get; } |
获取引发当前异常的方法。 (从 System.Exception 继承。) |
方法
方法 | 说明 |
---|---|
public bool Equals(Object obj) |
确定指定对象是否等于当前对象。 (从 Object 继承。) |
protected void Finalize() |
在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。 (从 Object 继承。) |
public Exception GetBaseException() |
返回是一个或多个后续异常的根本原因的异常。 (从 System.Exception 继承。) |
public int GetHashCode() |
为 MissingInteropDataException 实例返回一个哈希代码。 (从 Object 继承。) |
public void GetObjectData(SerializationInfo info, StreamingContext context) |
设置一个包含有关异常信息的 SerializationInfo 对象。 (从 System.Exception 继承。) |
public Type GetType() |
获取当前实例的运行时类型。 (从 System.Exception 继承。) |
protected Object MemberwiseClone() |
创建当前对象的卷影副本。 (从 Object 继承。) |
public string ToString() |
返回当前异常的字符串表示形式。 (从 System.Exception 继承。) |
事件
事件 | 说明 |
---|---|
protected event EventHandler<SafeSerializationEventArgs> SerializeObjectState |
当异常被序列化用来创建包含有关该异常的徐列出数据的异常状态对象时会出现该问题。 (从 System.Exception 继承。) |
使用情况详细信息
由于类型信息无效而导致无法成功调用 COM 或 Windows 运行时组件时会引发 MissingInteropDataException
异常。
在运行时间一个应用可使用的元数据由运行时指令(XML 配置)文件、*.rd.xml 来定义。 为防止应用发生此异常,你必须修改该文件,以定义运行时必须存在的元数据。 通常会通过将 MarshalObject
、MarshalDelegate
或 MarshalStructure
属性添加到运行时指令文件中的相应程序元素来解决该错误。 有关本文件的格式信息,请参阅运行时指令 (rd.xml) 配置文件参考。
重要
由于此异常表示应用程序需要的元数据在运行时间不可用,因此不应在 try
/catch
数据块中处理此异常。 相反,你应该诊断引起此异常的原因并通过将适当的条目添加到运行时指令文件消除异常。
MissingInteropDataException
类包含单个唯一成员,即 MissingType
属性,它表示一种类型,而如果想成功完成方法调用需使用到该类型的元数据。 所有剩余成员均继承自基类 System.Exception。