내가 무슨 일이 일어나고 있는지, 왜 그 오류가 던져 지는지 (GetBrokenRules 메서드는 List가 없기 때문에) 찾을 수 있습니다.하지만이 질문을 게시 한 이유는 더 나은 디자인을 요구하는 것입니다. 나 여기 좀 도와 줘? 내가 시설 클래스 일하고도메인 모델을 desigining - 도움이 필요합니다.
(목록 .../건물/층)
오류 :
오류 3 'System.Collections.Generic.List'GetBrokenRules '에 대한 정의가 포함되어 있지 않습니다 '및'System.Collections.Generic.List '형식의 첫 번째 인수를 받아들이는 확장 메서드'GetBrokenRules '을 찾을 수 없습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?)
>>>에 오류가 있습니다. if (Campus.GetBrokenRules(). Count> 0)
내 더 나은 방법은 내 GetBrokenRules() 무엇입니까?
i 캠퍼스는 IBuilding, IFloor 대신은 IList의 인수로 다음
public interface ICampus
{
List<BrokenBusinessRule> GetBrokenRules();
int Id { get; }
string Name { get; }
}
public interface IFacilities
{
List<BrokenBusinessRule> GetBrokenRules();
List<ICampus> Campus { get; }
List<IBuilding> Building { get; }
List<IFloor> Floor { get; }
}
public class Facilities : IFacilities
{
private List<ICampus> _campus;
private List<IBuilding> _building;
private List<IFloor> _floor;
public List<ICampus> Campus
{
get { return _campus; }
}
public List<IBuilding> Building
{
get { return _building; }
}
public List<IFloor> Floor
{
get { return _floor; }
}
public Facilities(List<ICampus> campus, List<IBuilding> building, List<IFloor> floor)
{
_campus = campus;
_building = building;
_floor = floor;
}
public List<BrokenBusinessRule> GetBrokenRules()
{
List<BrokenBusinessRule> brokenRules = new List<BrokenBusinessRule>();
if (Campus == null)
brokenRules.Add(new BrokenBusinessRule("Facility Campus", "Must have at least one Campus"));
else if (Campus.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Campus.GetBrokenRules());
}
if (Building == null)
brokenRules.Add(new BrokenBusinessRule("Facility Building", "Must have at least one Building"));
else if (Building.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Building.GetBrokenRules());
}
if (Floor == null)
brokenRules.Add(new BrokenBusinessRule("Facility Floor", "Must have at least one Floor"));
else if (Floor.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, Floor.GetBrokenRules());
}
}
}
@David : ICampus ...는 두 개의 속성 (id, name)을 가지고 있는데, 그 이유는 개체는 ICampus이고 IBuilding은 분리 된 개체입니다. 의미가 있습니까? –
@teki : 그래서 ICampus (그리고 저는 IBuilding과 IFloor로 가정)가 GetBrokenRules()를 정의하지 않았습니까? 그러면 그 객체에서 그 메소드를 호출 할 수 없습니다. 무슨 "깨진 규칙"당신이 그 객체에서 벗어나려고하고 어떻게 그들을 얻는 계획입니까? – David
내가 어떻게하는지 확인 : else if (Campus.GetBrokenRules(). Count> 0)? 만약 내가 Campus.ForEach를 사용한다면 –