我正在开发一个包含多个模块的应用程序(用户,项目,付款,发票等)。这些模块中的每一个都引用了一个包含名为App.Controls的共享控件的公共模块。 App.Controls包含一个名为OKSaveDialogView的视图,它只是一个带有Ok / Save按钮和一些常用功能的shell视图。 OKSaveDialogView动态加载适当的内容以获得可恢复性。不幸的是,App.Controls部分被多次加载到目录中导致错误:
1)找到多个匹配约束的导出'((exportDefinition.ContractName ==" App.Controls.ViewModels.OkCancelDialogViewModel")
我不知道在哪里开始调试这是怎么回事。有人能指出我正确的方向吗?
以下是该项目的一些代码剪辑:
OKCaneclDialogView.Xaml.VB
<Export("OkCancelDialogView")> _
<PartCreationPolicy(CreationPolicy.NonShared)> _
Partial Public Class OkCancelDialogView
Inherits UserControl
Public Sub New()
InitializeComponent()
End Sub
<Import()> _
Public Property ViewModel() As OkCancelDialogViewModel
Get
Return Me.DataContext
End Get
Set(value As OkCancelDialogViewModel)
Me.DataContext = value
End Set
End Property
End Class
OkCancelDialoViewModel.vb
<Export()> _
<PartCreationPolicy(CreationPolicy.NonShared)> _
Public Class OkCancelDialogViewModel
Inherits ViewModelBase
Implements INavigationAware
Implements IPartImportsSatisfiedNotification
'Implements IOkCancelDialogViewModel
'Services
'Private ReadOnly regionManager As IRegionManager
Private WithEvents userService As IUserDataService
Private navigationJournal As IRegionNavigationJournal
Private Const UserIdKey As String = "PrimaryId"
Private Const SecondaryIdKey As String = "SecondaryId"
Private Const DialogContentKey As String = "DialogContent"
'DialogViewModelDictionary
Private DialogViewModelDictionary As DialogViewModelDictionaries
Public Sub New()
Me.New(New RegionManager)
End Sub
<ImportingConstructor()> _
Public Sub New(regionManager As IRegionManager)
'Setup the global region manager
Me.RegionManager = regionManager
'Setup the locally scoped region manager
Me.LocalRegionManager = regionManager.CreateRegionManager
Me.synchronizationContext = If(synchronizationContext.Current, New SynchronizationContext())
'Setup commands
Me._closeCommand = New DelegateCommand(AddressOf OnClose)
Me._okSaveCommand = New DelegateCommand(AddressOf Me.OnOkSave, AddressOf Me.CanClickOkSave)
Me._CancelCommand = New DelegateCommand(AddressOf Me.OnCancel, AddressOf Me.CanClickCancel)
DialogViewModelDictionary = New DialogViewModelDictionaries
DialogViewModelDictionary.AddDialogViewModel("EditAddressDialogView", New EditAddressDialogViewModel())
End Sub