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。) |
页首
方法
页首
事件
名称 | 说明 | |
---|---|---|
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 命名空间