층에서 내 C# 응용 프로그램을 분할하는 동안, 나는 다음과 같은 방법으로 레이어 사이에서 순환 종속성의 문제를 해결 한 :C# 순환 종속성 문제 해결은 기술
using System;
using System.Collections.Generic;
using System.Text;
using SolvingCircularDependency.Common;
using SolvingCircularDependency.DA;
namespace SolvingCircularDependency.BO
{
public class MyClass : IPersistent
{
private string _message;
public string Message
{
get { return _message; }
set { _message = value; }
}
public bool Save()
{
return MyClassDA.Save(this);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace SolvingCircularDependency.Common
{
public interface IPersistent
{
bool Save();
string Message { get;}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using SolvingCircularDependency.Common;
namespace SolvingCircularDependency.DA
{
public class MyClassDA
{
public static bool Save(IPersistent obj)
{
Console.WriteLine(obj.Message);
return true;
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using SolvingCircularDependency.BO;
namespace SolvingCircularDependency.UI
{
class Program
{
static void Main(string[] args)
{
MyClass myobj = new MyClass();
myobj.Message = "Goodbye Circular Dependency!";
myobj.Save();
Console.ReadLine();
}
}
}
사람은 나에게 "일반적인"와 같은 더 나은 솔루션을 제안 할 수 있습니다 sln의 프로젝트가 나에게 과장되어 보입니까?
서비스 어셈블리의 의미는 무엇입니까? – anonymous
죄송합니다, 솔루션에 DA가 있습니다. – UserControl
죄송합니다. 이전 질문에 대한 대답이 명확하지 않을 수 있습니다. 나는 Common이 다른 어셈블리에 의존성이없는 어셈블리라고 생각한다. 이것이 사실이라면 어셈블리가 IP 공유 인터페이스를 호스팅하기에 좋은 후보라는 의미입니다. – UserControl