App.xaml找不到命名空间IocContainter MVVM

时间:2015-12-09 14:53:13

标签: c# xaml mvvm win-universal-app

我正在使用MVVM模式制作Windows 10通用应用程序。我将此代码放入App.xaml文件中:

<Application
    x:Class="WishLister.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WishLister"
    xmlns:services="using:WishLister.Services"
    RequestedTheme="Light">

    <Application.Resources>

        <ResourceDictionary>        
            <services:IocContainer x:Key="ioc" />

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Templates/Rescources.xaml" x:Name="recources"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

</Application>

但它在粗线上给我这个错误:

  

名称空间IocContainer中不存在名称using:WishLister.Services

我也尝试在stal of italic代码中使用clr-namespace:WishLister.Services,但我遇到了这两个错误:

  

名称空间IocContainer中不存在名称clr-namespace:WishLister.Services

     

XML名称空间IocContainer

中的未知类型clr-namespace:WishLister.Services;assembly=WishLister, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

但我已经上了课WishLister.Services.IocContainer。这是代码:

using GalaSoft.MvvmLight.Ioc;
using WishLister.ViewModels;

namespace WishLister.Services
{
    public class IocContainer
    {
        public IocContainer Ioc
        {
            get
            {
                return App.Current.Resources["ioc"] as IocContainer;
            }
        }

        public MainPageViewModel MainPageViewModel
        {
            get
            {
                return SimpleIoc.Default.GetInstance<MainPageViewModel>();
            }
        }

        public IocContainer()
        {
            SimpleIoc.Default.Register<MainPageViewModel>(false);
        }
    }
}

这段代码有什么问题?

3 个答案:

答案 0 :(得分:1)

我是通过@Will的评论找到的。他或她说:

  
      
  1. 删除 IF AL_CONT=0 THEN FIRST_RECORD; ALT:=SHOW_ALERT('FAIL'); ELSE LAST_RECORD; NEXT_RECORD; END IF; NEXT_RECORD; 以及引用xmlns服务的任何内容。
  2.   
  3. 构建您的解决方案。
  4.   
  5. 修复阻止此事的任何事情。
  6.   
  7. 然后清理,重新启动Visual Studio,然后重建。
  8.   
  9. 如果一切顺利,请尝试再次将您的IocContainer添加到xaml中。
  10.         

    此外,如果<services:IocContainer x:Key="ioc" />未在与IocContainer相同的程序集中定义,则您需要执行其他操作。

答案 1 :(得分:0)

尝试清理并重建项目。

答案 2 :(得分:-1)

尝试:

xmlns:services="clr-namespace:WishLister.Services"