這裏是我的問題,C#4編譯器中的奇怪錯誤?別名得到的名稱空間混淆了
我使用一個命名空間來刪除這是從實體框架的實體對象(一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
任何幫助將大規模讚賞。 在此先感謝。
非常奇怪。你一如既往的正確處理這筆錢。爲什麼當我限定了別名應該使用的名稱空間時,它必須根本解決這個問題?奇特但非常感謝喬恩。 – Stimul8d 2010-10-29 09:49:49
@ Stimul8d:那麼,因爲你可以*也*使用帶有非別名的點符號(而只有*將*使用別名)。當有疑問時,儘量給一個名字只有一個意思:) – 2010-10-29 09:55:37
同意,謝謝你的建議。 – Stimul8d 2010-10-29 10:13:46