GlobalObject 类

为实例为每个项目可访问的类型提供基类。

继承层次结构

System.Object
  System.MarshalByRefObject
    Microsoft.VisualStudio.Shell.Design.GlobalType
      Microsoft.VisualStudio.Shell.Design.GlobalObject

命名空间:  Microsoft.VisualStudio.Shell.Design
程序集:  Microsoft.VisualStudio.Shell.Design(在 Microsoft.VisualStudio.Shell.Design.dll 中)

语法

声明
Public MustInherit Class GlobalObject _
    Inherits GlobalType
public abstract class GlobalObject : GlobalType

GlobalObject 类型公开以下成员。

构造函数

  名称 说明
受保护的方法 GlobalObject 初始化 GlobalObject 类的新实例。

页首

属性

  名称 说明
公共属性 Instance 获取全局对象的按需创建的实例。
公共属性 Name 获取全局对象的建议的名称。
公共属性 ObjectType 获取 GlobalType的已签出类型。 (继承自 GlobalType。)

页首

方法

  名称 说明
受保护的方法 ClearInstance 清除 Instance 属性。
受保护的方法 ClearObjectType 清除 ObjectType 属性。 (继承自 GlobalType。)
受保护的方法 CreateInstance 创建全局对象的缓存实例。
公共方法 CreateObjRef 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。)
公共方法 Equals 检查指定的对象是否与当前全局对象相等。 (重写 GlobalType.Equals(Object)。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 GetHashCode 返回当前全局对象的哈希代码。 (重写 GlobalType.GetHashCode()。)
公共方法 GetLifetimeService 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。)
受保护的方法 GetObjectType 返回此全局类型的类型。 (继承自 GlobalType。)
公共方法 GetSerializer 返回指定类型的签出的序列化程序全局对象的。
公共方法 GetSerializerCore 返回指定类型的序列化程序全局对象的。
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)
受保护的方法 MemberwiseClone() 创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法 MemberwiseClone(Boolean) 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。)
受保护的方法 OnChanged 引发 Changed 事件。 (继承自 GlobalType。)
受保护的方法 OnChanging 引发 Changing 事件。 (继承自 GlobalType。)
受保护的方法 OnCreated 引发 Created 事件。
受保护的方法 OnRemoved 引发 Removed 事件。 (继承自 GlobalType。)
受保护的方法 OnRemoving 引发 Removing 事件。 (继承自 GlobalType。)
受保护的方法 PerformChange 重新初始化全局对象并通知用户对其状态或形状的更改。 (重写 GlobalType.PerformChange()。)
受保护的方法 PerformRemove 清除全局对象并向其删除的用户。 (重写 GlobalType.PerformRemove()。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

事件

  名称 说明
公共事件 Changed ,在修改后,生成当前全局类型。 (继承自 GlobalType。)
公共事件 Changing ,在修改之前,发生当前全局类型。 (继承自 GlobalType。)
公共事件 Created ,在全局对象创建一个实例,发生。
公共事件 Removed ,在当前全局类型从使用后,将取消操作。 (继承自 GlobalType。)
公共事件 Removing ,在当前全局类型从使用之前,将取消操作。 (继承自 GlobalType。)

页首

备注

全局对象是可访问的在整个项目中的对象,而不是在单个应用程序或单个窗体中。例如,在提供的项目资源文件 windows 窗体应用程序是全局对象。全局对象具有下列特征:

  • 因此它们是全局于项目和单的实例。

  • 它们通过静态方法或属性访问在类。

  • 它们通常是由自动项目系统为自定义类型。

  • 它们通常因到其他文件的事件在该项目中。

  • ,因为 GlobalObject 类从 System.MarshalByRefObject,派生其可从其他应用程序域的默认字段中。将要求全局对象实例是可序列化的。

当您感觉全局对象为全局时,因此,这也是它们的行为方式在运行时,在设计时将为每设计器实际上是实例。这使设计器保持其复制并保持隔离。GlobalObjectService 与 GlobalObject 实例进行交互以创建各种设计器的这些全局对象实例。

全局对象不直接创建;相反,对于 GlobalObjectService 类的 GetGlobalObjects 方法的调用开始创建所需全局对象实例的过程。

GlobalObject 还支持全局类型的创建。全局类型是标准的实例的对象,但是,此对象的类型来自在解决方案中的项目或生成的代码。有关全局类型的更多信息,请参见基类 GlobalType

在 .NET framework 的第一个版本,类型和实例将现有的项目中的引用系统。由于此系统使用物理,生成类型它遇到性能下降、重复的数据类型和需要重新启动设计器环境,更改了类型。全局类型和虚拟类型在托管包结构的第二个版本中引入解决这些问题。虚拟类型可以基于现有的基类的类型的类型和实例的动态创建。虚拟模式泛型类型生成类型,同时检查通过反射应用 (API)程序编程接口 (api),但是,没有一个真正的类实现。有关虚拟类型的更多信息,请参见 VirtualTypeBuilder 类。

示例

下面的代码示例演示一些全局对象。

DataSet cust = Customers.DefaultInstance;
String error = MyAppResources.ErrorString;
Bitmap logo = MyAppResources.ProductLogo;

下面的代码示例演示一些全局类型。

DataSet cust = new CustomerDataSet();

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Shell.Design 命名空间

GlobalObjectService

GlobalObjectProvider

GlobalObjectProviderFactory

ProvideGlobalObjectProviderAttribute

VirtualTypeBuilder