У меня есть интерфейс, определенный как:
namespace RivWorks.Interfaces.DataContracts
{
public interface IProduct
{
[XmlElement]
[DataMember(Name = "ID", Order = 0)]
Guid ProductID { get; set; }
[XmlElement]
[DataMember(Name = "altID", Order = 1)]
long alternateProductID { get; set; }
[XmlElement]
[DataMember(Name = "CompanyId", Order = 2)]
Guid CompanyId { get; set; }
...
[XmlElement]
[DataMember(Name = "buttonPositionCSS", Order = 14)]
string buttonPositionCSS { get; set; }
}
}
У меня есть конкретная реализация, например:
namespace RivWorks.Model.Objects
{
[DataContract(Name = "Product", Namespace = "http://rivworks.com/DataContracts/2009/01/15")]
public class Product : IProduct
{
#region Declarations
private Guid _productID;
private long _altProductID;
private Guid _companyId;
...
private string _buttonPositionCSS;
#endregion
#region IProduct Members
public Guid ProductID { get { return _productID; } set { _productID = value; } }
public long alternateProductID { get { return _altProductID; } set { _altProductID = value; } }
public Guid CompanyId { get { return _companyId; } set { _companyId = value; } }
...
public string buttonPositionCSS { get { return _buttonPositionCSS; } set { _buttonPositionCSS = value; } }
#endregion
}
}
У меня есть другой интерфейс, определенный как:
namespace RivWorks.Interfaces.Services
{
public interface IProductManager
{
#region Products
IProduct GetProductById(Guid productId);
List<IProduct> GetProductByCompany(Guid companyId);
int SaveProduct(IProduct product);
int DeleteProduct(Guid productId);
#endregion
}
}
У меня есть класс, определенный как:
namespace RivWorks.Controller
{
public class ProductManager : IProductManager
{
#region Declare Models
private static RivWorks.Model.Negotiation.RIV_Entities _dbRiv = RivWorks.Model.Stores.RivEntities(AppSettings.RivWorkEntities_connString);
private static RivWorks.Model.NegotiationAutos.RivFeedsEntities _dbFeed = RivWorks.Model.Stores.FeedEntities(AppSettings.FeedAutosEntities_connString);
#endregion
#region Products
public IProduct GetProductById(Guid productId)
{
// deleted for simplicity sake
return product;
}
public List<IProduct> GetProductByCompany(Guid companyId)
{
var company = (from a in _dbRiv.Company where a.CompanyId == companyId select a).First();
var companyDetails = from a in _dbRiv.AutoNegotiationDetails where a.CompanyId == companyId select a;
// ################################################## //
List<IProduct> productList = new List<RivWorks.Model.Objects.Product>();
// ################################################## //
// deleted for simplicity sake
return productList;
}
public int SaveProduct(IProduct product)
{
return 0; // stub
}
public int DeleteProduct(Guid productId)
{
return 0; // stub
}
#endregion
}
}
Я получаю эту ошибку во время компиляции:
Невозможно неявно преобразовать тип 'System.Collections.Generic.List ' в 'System.Collections.Generic.List '
Система очень ориентирована на службы (WCF, WebOrb и т. Д.), И я хотел представить интерфейсы в качестве моих контрактов. У меня есть Модель и Контроллер в .NET, и я использую Сервисы как Представления (прокси) для сторонних потребителей (реальное Представление).
Что я пропускаю или делаю неправильно?