F# 统一、棱镜、竖琴
当我尝试注入到FSharp库中时,我得到了一个解析错误,但在使用CSharp库时没有 我有3个项目:F# 统一、棱镜、竖琴,f#,prism,unity-container,F#,Prism,Unity Container,当我尝试注入到FSharp库中时,我得到了一个解析错误,但在使用CSharp库时没有 我有3个项目: csharp的一个主要应用 一个CSharp项目,包含一个类,该类的构造函数需要一个实例化良好的IUnityContainer 一个FSharp项目,包含一个类,该类的构造函数需要一个IUnityContainer,而该IUnityContainer不能以错误的方式实例化 依赖项解析失败,类型为= “ModuleDBGraphFS.ModuleEntityGraphFS”,name=“(无)
- csharp的一个主要应用
- 一个CSharp项目,包含一个类,该类的构造函数需要一个实例化良好的IUnityContainer
- 一个FSharp项目,包含一个类,该类的构造函数需要一个IUnityContainer,而该IUnityContainer不能以错误的方式实例化
命名空间WpfApplication
{
类引导程序:UnityBootstrapper
{
受保护的覆盖依赖对象CreateShell()
{
返回此.Container.Resolve();
}
受保护的覆盖无效初始值设置Shell()
{
base.InitializeShell();
App.Current.MainWindow=(窗口)this.Shell;
App.Current.MainWindow.Show();
}
受保护的覆盖无效配置ModuleCatalog()
{
base.ConfigureModuleCatalog();
ModuleCatalog ModuleCatalog=(ModuleCatalog)this.ModuleCatalog;
//OK moduleCalog.AddModule(typeof(ModuleDBGraph.ModuleEntityGraph));
//KO moduleCatalog.AddModule(typeof(ModuleDBGraphFS.ModuleEntityGraphFS));
}
}
}
在C#项目中
公共类模块标题图:IModule
{
专用IUnityContainer\u容器;
专用只读IRegionManager\u manager;
公共模块标题图(IUnityContainer容器、IRegionManager)
{
_容器=容器;
_经理=经理;
}
void IModule.Initialize()
{
}
}
在F#项目中
键入ModuleEntityGraphFS(容器:IUnityContainer,管理器:IRegionManager)=
请打印“嗨”
将Microsoft.Practices.Prism.Modularity.IModule与
成员x.Initialize()=
do()
出于某种原因,prism的Nuget脚本在我的模块项目中添加了对
C:\windows\assembly\GAC_MSIL\Microsoft.Practices.Unity\1.2.0.0__31bf3856ad364e35\Microsoft.Practices.Unity.dll
而shell项目本身正在引用
WpfApplication3\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.dll
我开始的一个新的解决方案让我看到了这个问题。
因此出现了一个奇怪的消息,即它无法解析UnityContainer本身(应该由Prism Unity extensions在某处注册)您的引用是否相同?该错误消息指出您没有
IUnityContainer
映射设置。我有相同的引用。。。奇怪的是,调用其中一个时映射会在那里,而调用另一个时映射不会在那里。我将在家用电脑上试用。我无法在Mac上复制。我一定是漏掉了什么,稍后会报告到底是什么。。。