使用VisualStudio的图标

时间:2012-10-16 22:59:18

标签: c# visual-studio mef intellisense

我正在编写IntelliSense实现,我正在尝试访问VisualStudio的图标集。我知道你的意思是使用MEF,不管怎样,你导入的属性/字段应该自动填充。目前我有:

[Import]
public IGlyphService GlyphService { get; set; }

GlyphService始终为null。我错过了什么?

1 个答案:

答案 0 :(得分:0)

显然,您确实必须手动填充和撰写CompositionContainer。我的解决方案看起来像这样:

// An aggregate catalog that combines multiple catalogs
var catalog = new AggregateCatalog();

// Adds all the parts found in the necessary assemblies
catalog.Catalogs.Add(new AssemblyCatalog(typeof(IGlyphService).Assembly));
catalog.Catalogs.Add(new AssemblyCatalog(typeof(SmartTagSurface).Assembly));

// Create the CompositionContainer with the parts in the catalog
CompositionContainer mefContainer = new CompositionContainer(catalog);

// Fill the imports of this object
mefContainer.ComposeParts(this);

运行此对象后,当前对象(或您在撰写部件中选择的对象)将填充它的Imports。我遇到了一些问题,包括需要在程序的bin文件夹中包含引用的dll。