Вот моя проблема,
Я использую пространство имен для удаления неоднозначности из класса фабрики, который создает объекты домена из объектов сущности каркаса сущности (фабрика POCO, ... если это имеет смысл!).Назовите меня старомодным, но мне нравятся такие вещи: -)
Пространства имен, с которыми я работаю, имеют псевдонимы как таковые -
using Entities = DataAccess.Models.AccessControl;
using Cases = DomainModel.BusinessObjects.Implimentations.Cases;
Теперь у пространства имен DomainModel.BusinessObjects.Implimentations.Cases
есть только одноТип пока называется CaseType
.Однако, пока я работал над другим типом, который использует класс CaseType
, я заметил, что когда я 'ставлю' точку в псевдониме Cases
, он указывает на совершенно другое пространство имен в моей сборке DataAccess
и дает мне CaseTypeFactory
в интеллигенции.
Итак, я проверил классы CaseType
и CaseTypeFactory
, и они правильно расположены в пространстве имен.Что, во имя Бога, происходит?Я действительно не могу разобраться с этим.
Вот код для CaseType
и CaseTypeFactory
, если это поможет.
CaseTypeFactory
using Domain = DomainModel.BusinessObjects.Implimentations.Cases;
using Entities = DataAccess.Models.AccessControl;
using Interfaces.DataAccess;
namespace DataAccess.Factories.Cases
{
public class CaseTypeFactory :
IEntityPOCOFactory<Domain.CaseType, Entities.CaseType>
{
#region IEntityPOCOFactory<CaseType,CaseType> Members
public Domain.CaseType CreatePOCO(Entities.CaseType entity)
{
return new Domain.CaseType(entity.Id, entity.Name, entity.LastChanged);
}
public IList<Domain.CaseType> CreatePOCOs(
IEnumerable<Entities.CaseType> entities)
{
var toReturn = new List<Domain.CaseType>();
foreach (var entity in entities)
{
toReturn.Add(CreatePOCO(entity));
}
return toReturn;
}
#endregion
}
}
CaseType
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DomainModel.BusinessObjects.Base;
namespace DomainModel.BusinessObjects.Implimentations.Cases
{
public class CaseType : NamedNumberedAndVersioned
{
public CaseType(string name, DateTime lastChanged)
: this(0, name, lastChanged) { }
public CaseType(int id, string name, DateTime lastChanged)
: base(id, name, lastChanged) { }
public void Update(string name)
{
this.Name = name;
}
}
}
Вероятно, стоит упомянуть, что я работаю с .Net 4.0 / VS2010
Любая справка будетвысоко ценится.Заранее спасибо.