指定DDEX支持实体具有应返回的默认实现,当提供程序不提供实现。
继承层次结构
System.Object
System.Attribute
Microsoft.VisualStudio.Data.Core.DataDefaultObjectAttribute
命名空间: Microsoft.VisualStudio.Data.Core
程序集: Microsoft.VisualStudio.Data.Core(在 Microsoft.VisualStudio.Data.Core.dll 中)
语法
声明
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Interface)> _
Public NotInheritable Class DataDefaultObjectAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)]
public sealed class DataDefaultObjectAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Interface)]
public ref class DataDefaultObjectAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Interface)>]
type DataDefaultObjectAttribute =
class
inherit Attribute
end
public final class DataDefaultObjectAttribute extends Attribute
DataDefaultObjectAttribute 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
![]() |
DataDefaultObjectAttribute | 使用指定的选件类ID.,初始化 DataDefaultObjectAttribute 选件类的新实例, |
页首
属性
名称 | 说明 | |
---|---|---|
![]() |
ClassId | 获取用于标识默认对象类类型的选件类ID。 |
![]() |
TypeId | 当在派生类中实现时,获取该 Attribute 的唯一标识符。 (继承自 Attribute。) |
页首
方法
名称 | 说明 | |
---|---|---|
![]() |
Equals | 基础结构。返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute。) |
![]() |
GetHashCode | 返回此实例的哈希代码。 (继承自 Attribute。) |
![]() |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
![]() |
IsDefaultAttribute | 当在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute。) |
![]() |
Match | 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute。) |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
显式接口实现
名称 | 说明 | |
---|---|---|
![]() ![]() |
_Attribute.GetIDsOfNames | 将一组名称映射为对应的一组调度标识符。 (继承自 Attribute。) |
![]() ![]() |
_Attribute.GetTypeInfo | 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute。) |
![]() ![]() |
_Attribute.GetTypeInfoCount | 检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute。) |
![]() ![]() |
_Attribute.Invoke | 提供对某一对象公开的属性和方法的访问。 (继承自 Attribute。) |
页首
备注
当DDEX客户端调用DDEX运行时创建DDEX的实例时支持特定提供程序的实体,提供程序可以查询以确定它是否支持该实体,并且,",则,将创建实例并返回。如果提供程序不支持该实体,默认情况下调用引发异常或基于代码路径返回 nullnull 引用(在 Visual Basic 中为 Nothing)。但是,在某些情况下,DDEX的所有者支持实体能有自己若要提供给,当DDEX提供程序不提供自己的实现时,从而避免错误条件的客户端的一个合理的默认实现。
此的示例实际上是 IVsDataConnectionUIConnector 支持实体。这支持实体包含调用从打开用户界面上下文的数据连接的一个方法,如数据连接对话框。如果找不到,此的典型用法支持实体是添加附加的行为,如检查数据连接目标是否存在以及指示创建新的数据存储区。但是,合理的默认任何不是常规打开连接并执行特定的。如果提供此默认实现,客户端代码简化,因为它不再需要单独处理该提供程序需要或不实现支持实体的情况,也不需要提供自己的回退,默认实现。
DDEX支持具有一个合理的默认实现应包括在表示支持实体的类型的此属性的实体。特性必须包含 ClassId 属性的值,并且,该值必须是表示选件类ID的有效的GUID注册在Visual Studio环境中。最后,选件类ID标识的选件类必须是 IVsDataDefaultObject 实现接口的托管选件类。当客户端请求选件类的实例的创建具有指定的ID的,DDEX运行时将创建此实例,如果提供程序实现不可用。默认实现回传客户端。
DataDefaultObjectAttribute 特性主要是相关到DDEX平台扩展程序,即,创建额外的DDEX的服务和支持实体。
示例
下面的代码演示 IVsDataConnectionUIConnector 的定义支持声明默认对象属性的实体。该定义由此默认对象的实现执行。
using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services;
[DataDefaultObject("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
public interface IVsDataConnectionUIConnector
{
void Connect(IVsDataConnection connection);
}
[Guid("C58E1B8D-9723-40c8-8B11-9DDAF0B393BA")]
internal class DefaultConnectionUIConnector
: IVsDataConnectionUIConnector,
IVsDataDefaultObject
{
public void Connect(IVsDataConnection connection)
{
if (connection == null)
{
throw new ArgumentNullException("connection");
}
connection.Open();
}
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。