저는 Ninject를 처음 사용하기 때문에 노력하고 있지 않을 수도 있습니다.하지만 물어보고 싶었습니다. 나는 자유로이 아래에 오타가있을 수 있습니다.개체 이니셜 라이저 및 LINQ가있는 Ninject
public interface IPerson
{
string FirstName { get; set; }
string LastName { get; set;}
string GetFullName();
}
그리고 콘크리트 :
: 내가이 일을하는 데있어 무엇public class Person : IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string GetFullName()
{
return String.Concat(FirstName, " ", LastName);
}
}
내가 배열이나 XML에서 데이터를 검색하고있을 때이 같은 것입니다의 내가 인터페이스를 가지고 있다고 가정 해 봅시다
public IEnumerable<IPerson> GetPeople(string xml)
{
XElement persons = XElement.Parse(xml);
IEnumerable<IPerson> people = (
from person in persons.Descendants("person")
select new Person
{
FirstName = person.Attribute("FName").Value,
LastName = person.Attribute("LName").Value
}).ToList();
return people;
}
저는이 방법으로 콘크리트를 인터페이스에 단단히 묶고 싶지 않습니다. 개체에 대한 LINQ 또는 개체 이니셜 라이저를 사용하여 Ninject를 사용하는 것과 관련된 정보를 찾을 수 없었습니다. 나는 틀린 장소에서보고 있을지도 모른다. 그러나 나는 전혀 운이없는 날을 찾고 있었다.
필자는 커널을 싱글 톤 인스턴스에 넣고 작동하는지 확인하려고했지만, 커널을 넘기는 것이 좋지 않다는 말을 들었습니다. 저는 이것을 현재 클래스 라이브러리에 구현하려고합니다. 이것이 가능하지 않은 경우 누구에게도이 사례에서 모범 사례가 무엇인지에 대한 예나 제안이 있습니까? 도움에 미리 감사드립니다.
편집 : 몇 가지 답변을 바탕으로 분명히해야한다고 생각합니다. 예, 위의 예는 수명이 짧지 만 간단히 말해서 내가하려는 중 하나의 예입니다. 더 큰 그림을 그려 봅시다. XML 대신 제 3 자 웹 서비스를 통해 모든 데이터를 수집하고 그것에 대한 인터페이스를 만들고 있습니다. 데이터는 wsdl의 정의 된 객체이거나 XML 문자열 일 수 있습니다. IPerson은 Person 객체와 User 객체 모두에 사용될 수 있습니다. 나는 이식 할 필요가 있고 다른 프로젝트에서 사용될 것이고 MVC3 웹 애플리케이션에 그것을 전달할 것이고 객체가 자바 스크립트에서도 사용될 것이기 때문에 이것을 별도의 클래스 라이브러리 내부에서 할 것이다. 지금까지 모든 의견을 고맙게 생각합니다.
업데이트에 대해서는 인터페이스가 필요하다고 생각하지 않습니다. 편집에 설명하는 경우 서비스에서 반환 된 객체를 새로운'Person' 객체로 변환하는 방법을 알고있는 타사 웹 서비스에 대한 추상화가 필요합니다. 'Person'은 단순히 POCO 도메인 객체이며 일반적으로 응용 프로그램 전체에서 다시 사용됩니다. – Steven