Я пытался преобразовать WPF Starter Kit из C # в VB.net, и у меня все хорошо, за исключением одной области ... Внедрение зависимостей с помощью блока приложений Unity.
У меня есть следующий блок кода C #:
Type viewModelType = viewModelAssembly.GetType(action.ViewModelTypeName);
var notificationPolicy = unity.AddNewExtension<Interception>()
.RegisterType(typeof(BaseViewModel), viewModelType, action.Name)
.Configure<Interception>()
.SetDefaultInterceptorFor(viewModelType, new VirtualMethodInterceptor())
.AddPolicy("NotificationPolicy");
notificationPolicy.AddMatchingRule(new PropertyMatchingRule("*", PropertyMatchingOption.Set));
notificationPolicy.AddCallHandler<NotifyPropertyChangedCallHandler>();
, который я автоматически конвертирую в vb.net:
Dim viewModelType As Type = viewModelAssembly.[GetType](action.ViewModelTypeName)
Dim notificationPolicy = unity.AddNewExtension(Of Interception()).RegisterType(GetType(BaseViewModel), viewModelType, action.Name).Configure(Of Interception)().SetDefaultInterceptorFor(viewModelType, New VirtualMethodInterceptor()).AddPolicy("NotificationPolicy")
notificationPolicy.AddMatchingRule(New PropertyMatchingRule("*", PropertyMatchingOption.[Set]))
notificationPolicy.AddCallHandler(Of NotifyPropertyChangedCallHandler)()
Код vb.net генерирует ошибку«Разрешение перегрузки с задержкой не может быть применено к« RegisterType », потому что экземпляр доступа имеет тип интерфейса», и я понятия не имею, как я могу это исправить.Я совершенно новичок в этом Unity, и я не могу найти примеры VB - кроме фрагментов, которые предлагает MS.Любая помощь будет принята с благодарностью.
Спасибо всем,
Райан
РЕДАКТИРОВАТЬ: Per Blam, я добавил дополнительную скобку, но я все еще получаю ту же ошибку.