我有一个VSIX和一个关联的MEF DLL,根据文档使用IModelConversionExtension Class,还有一个pkgdef文件设置.foo作为调用EF Designer的扩展。
[PartCreationPolicy(CreationPolicy.Shared)]
[Export(typeof(IModelConversionExtension))]
[ModelFileExtension(".foo")]
public class MyConversionCallback : IModelConversionExtension
{
public void OnAfterFileLoaded(ModelConversionExtensionContext context)
{
//How does this get called?
return;
}
public void OnBeforeFileSaved(ModelConversionExtensionContext context)
{
//How does this get called?
return;
}
}
[$RootKey$\Editors\{c99aea30-8e36-4515-b76f-496f5a48a6aa}\Extensions]
"foo"=dword:00000032
[$RootKey$\Projects]
[$RootKey$\Projects\{F184B08F-C81C-45F6-A57F-5ABD9991F28F}]
[$RootKey$\Projects\{F184B08F-C81C-45F6-A57F-5ABD9991F28F}\RelatedFiles]
[$RootKey$\Projects\{F184B08F-C81C-45F6-A57F-5ABD9991F28F}\RelatedFiles\.foo]
".diagram"=dword:00000002
[$RootKey$\Projects]
[$RootKey$\Projects\{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}]
[$RootKey$\Projects\{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\RelatedFiles]
[$RootKey$\Projects\{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\RelatedFiles\.foo]
".diagram"=dword:00000002
我可以使用类似的Transform和Generation MEF Classes来正常工作。 我的Model1.foo会调用EF Designer,但是 1. OnAfterFileLoaded和OnBeforeFileSaved从不开火,和 2.当我尝试保存Model1.foo时,我收到一条错误消息,它说错误列表中有错误,但没有。
要做到这一点,我没做什么。 感谢
答案 0 :(得分:0)
OnAfterFileLoaded
并且edmx
返回的值与您的扩展名相匹配,则应该调用 IEntityDesignerConversionData.FileExtension
。 OnBeforeFileSaved
以相反的方式运作 - 在保存时。但是 - 我今天查看了这个领域的代码并得出结论,它实际上无法工作。我为此提交了一个工作项:https://entityframework.codeplex.com/workitem/1371