XNA Game Studio以某种方式扩展了Visual Studio中的属性窗口,其中包含两个新的组合框“Importer”和“Processor”。这些组合框包含当前解决方案中代码中定义的可用导入器和处理器,当这些字段更改时,该设置将保存到项目文件中相应项目的元数据中。
我很好奇他们是如何实现这一目标的?任何信息都将不胜感激。
答案 0 :(得分:1)
有一个陈旧但很好的article解释了它如何完成的原则。基本上它归结为实现IExtenderProvider
接口并确定它应该通过CanExtendMethod
扩展哪些对象,使用对象的CATID来识别它。对于要扩展的对象,使用GetExtender
方法返回扩展器。请注意,扩展程序必须标记为ComVisible
。
扩展程序提供程序registered在注册表中是静态的,或者是动态使用代码。文档很薄,但this page表示扩展程序能够添加属性并隐藏或更改现有属性。