Привет, я пытаюсь использовать WindsorContainer в своем приложении WPF.Я скачал dll-ы с этого сайта: http://stw.castleproject.org/Windsor.MainPage.ashx. WPF основан на .NET Framework 4.0, поэтому я добавляю
- Castle.Core и
- Castle.Windsor для.NET 4.0.
В моем проекте я отсылаю эту Caliburn dll-s:
- Caliburn.Castle
- Caliburn.Core
- Caliburn.PresentationFramework all for .NET 4.0
, а также Microsoft.Practices.ServiceLocator для версии 2.0.
Мой код выглядит так:
App.cs
public partial class App : CaliburnApplication
{
private IWindsorContainer _container;
public App()
{
RegisterComponents();
}
protected override IServiceLocator CreateContainer()
{
_container = new WindsorContainer();
return new WindsorAdapter(_container);
}
protected override object CreateRootModel()
{
return _container.Resolve<IShellViewModel>();
}
protected void RegisterComponents()
{
_container.Register(Component.For<IShellViewModel>()
.ImplementedBy<ShellViewModel>()
.LifeStyle.Singleton);
}
}
App.xaml
<am:CaliburnApplication
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:am="clr-namespace:Caliburn.PresentationFramework.ApplicationModel;assembly=Caliburn.PresentationFramework"
x:Class="Spirit_Messenger.App">
<am:CaliburnApplication.Resources>
</am:CaliburnApplication.Resources>
</am:CaliburnApplication>
Когда я пытаюсь скомпилировать свой проект, я получаю эту ошибку:
Не удалось загрузить файл или сборку 'Castle.Windsor, версия = 2.1.0.0, Culture = нейтральный, PublicKeyToken = 407dd0808d44fbdc' или одна из его зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)
StakTrace:
* в Spirit_Messenger.App.CreateContainer () в Caliburn.PresentationFramework.ApplicationModel.CaliburnApplication..ctor() в Spirit_Messenger.App..ctor () в C: \ Users \ Jan \ Documents \ Visual Studio 2010 \ Projects \ C # \ Pokec__Messenger \ Spirit_Messenger \ App.xaml.cs: строка 15 в Spirit_Messenger.App.Main () вC: \ Users \ Jan \ Documents \ Visual Studio 2010 \ Projects \ C # \ Pokec__Messenger \ Spirit_Messenger \ obj \ x86 \ Release \ App.g.cs: строка 50 в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, аргументы String [])в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Thuntext.(ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое значение ignoreSyncCtx) в System.Threading.ExecutionContext.Выполнить (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart () *
Я новичок в WPF / IoC-DI, где могут возникнуть проблемы.Я так запутался.Спасибо за помощь.