2016-04-25 3 views
3

Im использованием службой слоя lattern, и мое решение содержит три проекта:Как использовать типы моделей между проектами

Ключевых службы UI

В моем контроллере В UI-проекте у меня есть следующий код:

public ActionResult AddSpotifyAlbums(List<SpotifyAlbums> albums) 
     { 
      _profileService.AddSpotifyAlbums(albums); 
      return Json(new { data = albums }); 
     } 

SpotifyAlbums в List<SpotifyAlbums> модель в моем проекте UI. Это выглядит следующим образом:

public class SpotifyAlbums 
    { 
     public string URI { get; set; } 
     public int profileId { get; set; } 
    } 

Как вы можете видеть, Im используя службу здесь, _profileService, чтобы вызвать метод, который обрабатывает сохранение альбомов.

Но тип альбомов SpotifyAlbums. Как мне сделать В моем сервисе, когда тип модели альбомов SpotifyAlbums?

Я попытался создать идентичную модель в своем сервис-проекте, но это не работает. Я получаю следующую ошибку:

Severity Code Description Project File Line Suppression State Error CS1503 Argument 1: cannot convert from 'System.Collections.Generic.List' to 'soundyladder.Service.Models.SpotifyAlbums'

Кто может помочь мне здесь, чтобы решить эту проблему?

+2

Поместите определения модели в проект библиотеки классов, на который ссылаются ваши другие проекты. – David

ответ

1

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

Предполагая, что проекты служб и интерфейса связывают ваш основной проект, вы можете определить класс SpotifyAlbums в своем проекте Core и ссылаться на этот класс на других уровнях.

0

Брайан, вам нужно решить, какой модуль «владеет» SpotifyAlbum. В решении необходимо учитывать аспекты инкапсуляции данных, доступа к данным и манипулирования данными. Важно установить правильные ссылки на службы и получить все модули с использованием SpotifyAlbum экземпляров, чтобы захватить его из модуля, «владеющего» SpotifyAlbum. Тогда все остальные модули будут иметь прокси-классы, созданные из ссылок на «владеющий» модуль.

0

Я использую тот же шаблон проектирования (надежная подсистема на основе ресурсов). Мне нравится использовать .dll, который содержит общий код и общие модели. Затем все проекты ссылаются на .dll для определения модели.

 Смежные вопросы

  • Нет связанных вопросов^_^