首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AutoFac BootStrapper?

使用AutoFac BootStrapper?
EN

Stack Overflow用户
提问于 2012-08-26 03:24:29
回答 1查看 525关注 0票数 0

我正在尝试将使用StructureMap的IOC的WPF示例转换为使用AutoFac的Silverlight

这被证明是非常困难的

我已经定义了一个静态BootStrapper类

代码语言:javascript
复制
public class BootStrapper
{
  public static IContainer BaseContainer { get; private set; }

  public static FlexContractStructureViewModel FlexContractStructureViewModel()
  {
      return BaseContainer.Resolve<FlexContractStructureViewModel>();
  }

  public static void Build()
  {
      if (BaseContainer == null)
      {
          var builder = new ContainerBuilder();
          builder.RegisterAssemblyTypes();

          BaseContainer = builder.Build();
      }
  }

  static BootStrapper()
  {

  }

} 

这是在App.xaml.cs的Application_Startup中初始化的

代码语言:javascript
复制
private void Application_Startup(object sender, StartupEventArgs e)
{
  BootStrapper.Build();

  this.RootVisual = new MainPage();
}

我已将其中一个视图的DataContext设置为使用我的BootStrapper

代码语言:javascript
复制
DataContext="{Binding Path=FlexContractStructureViewModel, 
              Source={StaticResource classes:BootStrapper}}"          

但是我得到错误:找不到具有名称/关键字类的资源:BootStrapper

我正在使用状态对要添加的App.xaml进行更改

但我不能这样做,因为ObjectDataProvider不被识别

我已经尝试了下面的等价物,但没有成功

代码语言:javascript
复制
<bs:BootStrapper xmlns:bs="clr-namespace:SLDashboard2.Classes" x:Key="BootStrapper"/>

我认为这可能与BootStrapper静态有关?但是我不想不断地创建新的容器

有人能帮帮忙吗?

保罗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-27 04:33:26

不对。你不应该在你的IoC中注册你所有的ViewModels吗?然后将它们注入到构造函数中。它们永远不应该是静态的,我通常不会在视图中使用静态资源作为我的数据上下文

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12124961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档