[英]Is it possible to chain source generators in .net?
我有一個項目,我將 INotifyPropertyChanged 實現為源生成器,我希望能夠在我的各種以 MVVM 為中心的項目中使用它。
該項目使用將屬性應用於部分類中的字段的方法,它將為這些字段生成屬性。
然而,我當前的項目基於 Monogame,並且 UI 框架本身並不支持綁定,所以我想我會提出一個解決方案,避免使用另一個源生成器進行反射。
不幸的是,在我的 INotifyPropertyChanged 源生成器中生成的屬性似乎在我的 MLEM.Ui.Binding 源生成器中不可見。 我只得到原始源代碼中的屬性。
有沒有辦法讓 INotifyPropertyChanged 源生成器先運行,然后在我的第二個綁定源生成器中使用它生成的源代碼?
我嘗試過的事情:
EmitCompilerGeneratedFiles
和CompilerGeneratedFilesOutputPath
設置為一個目錄(我努力排除 obj/Debug/generated 中的文件,所以我最終得到了重復的類)正如 Marc Gravell 所解釋的,這個問題的答案是否定的。
話雖如此,我已經成功地解決了這個問題,但不是通過在單個編譯單元中鏈接多個源生成器。
我很幸運,我將綁定生成為一組擴展方法,這意味着我可以將我的 ViewModel 和它們的 INPC 源生成器移動到它自己的項目中,然后讓我的綁定源生成器在原始項目上運行。
這意味着當綁定源生成器檢查它時,ViewModel 程序集的輸出已經穩定,並且組裝的 INPC 代碼已經到位。
這可能並不適用於所有人,但也許它開啟了一種可能性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.