Конфигурация Unity и та же сборка - PullRequest
2 голосов
/ 03 декабря 2009

В настоящее время я получаю сообщение об ошибке при попытке разрешить мой класс IDataAccess.

Значение свойства type не может быть проанализировано. Ошибка: Не удалось загрузить файл или сборку «TestProject» или одну из ее зависимостей. Система не может найти указанный файл. (C: \ Source \ TestIoC \ src \ TestIoC \ TestProject \ bin \ Debug \ TestProject.vshost.exe.config строка 14)

Это внутри проекта приложения WPF.

Какой правильный синтаксис относится к сборке, в которой вы сейчас находитесь? Есть ли способ сделать это? Я знаю, что в более широком решении я буду извлекать типы из отдельных сборок, так что это может не быть проблемой. Но как правильно сделать это для небольшого автономного тестового проекта. Примечание. Сейчас меня интересует только конфигурация XML, а не конфигурация C # (в коде).

ОБНОВЛЕНИЕ : посмотреть все комментарии

Моя XML-конфигурация:

<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
  </configSections>
  <unity>
    <typeAliases>
      <!-- Lifetime manager types -->
      <typeAlias alias="singleton"  type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />
      <typeAlias alias="external" type="Microsoft.Practices.Unity.ExternallyControlledLifetimeManager, Microsoft.Practices.Unity" />
      <typeAlias alias="IDataAccess" type="TestProject.IDataAccess, TestProject" />
      <typeAlias alias="DataAccess" type="TestProject.DataAccess, TestProject" />
    </typeAliases>
    <containers>
      <container name="Services">
        <types>
          <type type="IDataAccess" mapTo="DataAccess" />
        </types>
      </container>
    </containers>
  </unity>
</configuration>

Ответы [ 3 ]

3 голосов
/ 15 марта 2018

В единстве 5.7

Линия сечения должна быть такой

<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Unity.Configuration" />

0 голосов
/ 22 апреля 2015

У меня просто была такая же проблема. это работает для меня: Установите для параметра «Копировать локально» значение true в свойствах Microsoft.Practices.Unity. Вам также следует добавить ссылку на Microsoft.Practices.ObjectBuilder2 (от этого зависит Microsoft.Practices.Unity)

0 голосов
/ 03 декабря 2009

Это выглядит хорошо. Вы уверены, что ваше имя сборки правильное? Проверьте настройки проекта и убедитесь, что имя вашей сборки указано правильно:

  1. Щелкните правой кнопкой мыши свой проект и выберите Свойства
  2. Нажмите на вкладку приложения слева
  3. Посмотрите на значение поля «Имя сборки».

Иногда, если вы переименовали свой проект, это поле все равно будет иметь старое значение.

Возможно, что это вообще не проблема, но это самая простая вещь для проверки. Если вы обнаружите, что это не проблема, ответьте на это, и я опубликую другие идеи, которые у меня есть.

Кроме того, вы можете рассмотреть возможность размещения образца в виде файла .zip, чтобы мы могли взглянуть на него.

...