C# 温莎萨马林城堡酒店

C# 温莎萨马林城堡酒店,c#,mono,xamarin,castle-windsor,nuget-package,C#,Mono,Xamarin,Castle Windsor,Nuget Package,我正试图将Castle.Windsor包含在Xamarin3.0项目中,并在项目中使用一个可移植类库。当我试图通过nuget包含此内容时,会出现以下错误 PM> install-package castle.Windsor Attempting to resolve dependency 'Castle.Core (≥ 3.3.0)'. Installing 'Castle.Core 3.3.0'. Successfully installed 'Castle.Core 3.3.0'. I

我正试图将Castle.Windsor包含在Xamarin3.0项目中,并在项目中使用一个可移植类库。当我试图通过nuget包含此内容时,会出现以下错误

PM> install-package castle.Windsor
Attempting to resolve dependency 'Castle.Core (≥ 3.3.0)'.
Installing 'Castle.Core 3.3.0'.
Successfully installed 'Castle.Core 3.3.0'.
Installing 'Castle.Windsor 3.3.0'.
Successfully installed 'Castle.Windsor 3.3.0'.
Adding 'Castle.Core 3.3.0' to FuelCog.Core.CompositionRoot.
Uninstalling 'Castle.Core 3.3.0'.
Successfully uninstalled 'Castle.Core 3.3.0'.
Install failed. Rolling back...
install-package : Could not install package 'Castle.Core 3.3.0'. You are trying to install this package into a project that targets 'portable-net45+sl50+win+wp80+MonoAndroid10+MonoTouch10', 
but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ install-package castle.Windsor
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
我的目标是Xamarin.Android、Xamarin.iOS和WindowsPhone8.0。据此,Castle.Windsor使用Mono框架。我已尝试禁用PCL属性中的各种目标,以查看哪个目标不允许Castle.Windsor正确安装,但似乎没有一个选择有效


Castle.Windsor与PCL不兼容,还是我遗漏了什么?

Windsor与PCL不兼容。PCL配置文件中缺少API,例如反射

我之所以这么想,是因为当时没有任何东西可以不费吹灰之力就在所有平台上运行,现在可能不是这样了


无论如何,它是非常简单的(对于一些人来说可能太简单了,对于我相对简单的场景来说,它很棒),如果您还没有找到其他东西,请查看它并免费使用…在您需要的地方扩展。

温莎与PCL不兼容;而且很可能永远不会。我建议试用ninject,它与PCL兼容且维护良好:

您可以从这里获得软件包:

还有,;这里有一篇关于支持IoC容器和Xamarin的文章:

MS Unity支持PCL,包括对Xamarin iOS和Droid的支持,尽管该功能集在某些方面(主要围绕自动注册)明显受到限制。但总体而言,它工作良好。

与PCL不兼容。对于DI,您可以使用TinyIOC、SimpleContainer等。我已经抽象了我的解析器类,以便在不同的平台上使用不同的容器。