2013-06-20 52 views
0

我有一個VSIX和一個使用IModelConversionExtension類的關聯MEF DLL,以及一個設置.foo作爲擴展名的pkgdef文件調用EF Designer。如何獲取使用Model1.foo而不是Model1.edmx,並調用IModelConversionExtension回調

[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 

我可以同時獲得類似的轉換和生成MEF類工作正常。 而且我的Model1.foo確實調用了EF Designer,但是 1. OnAfterFileLoaded和OnBeforeFileSaved永遠不會觸發,並且 2.當我試圖保存Model1.foo時,會看到一條錯誤消息,該消息表示在錯誤列表中看到錯誤,但是沒有了。

什麼沒有做到讓這個工作。 感謝

回答

0

OnAfterFileLoaded應該是,如果你加載其延伸超過edmx不同,IEntityDesignerConversionData.FileExtension返回您的分機相匹配的值的文件被調用。 OnBeforeFileSaved以相反的方式工作 - 保存。但是 - 我今天看了這方面的代碼,得出結論說它實際上不能工作。我爲此提交了一份工作項目:https://entityframework.codeplex.com/workitem/1371

相關問題