우리는 우리가 후손의 각 속성은 다음과 같이 기록 일부 MVC와 같은 시스템에 사용하는 기본 개체가 목적 및 통지 및 유효성 확인 목적으로 사용됩니다. 우리는 getter를 사용하여 명시 적으로 읽을 내용을 표시 한 코드가있는 경우 (기본 클래스가 해당 속성이 변경 될 때만 호출 할 수 있도록) 오류가 발생하는 경우 경고합니다. 우리는 setter를 사용합니다.PostSharp 측면, 호출하는 일반적인 방법
물론이 두 개 코드가있다protected T GetProperty<T>(String propertyName,
ref T backingField)
{
return backingField;
}
protected Boolean SetProperty<T>(String propertyName,
ref T backingField,
T newValue)
{
backingField = newValue;
return true;
}
하지만 : 등 단순 들어
속성 변경 알림, 더러운 플래그 처리, 검증, 들어, 이러한 방법의 구현은 다음과 같습니다 가정하자 이 코드는 내 질문과 관련이 없거나 적어도 그렇게하기를 바랍니다. 그렇다면 질문을 수정하겠습니다.
어쨌든,이 같은 자동 속성에 자동으로 저에 대한 호출을 구현하는 PostSharp 측면을 쓰고 싶습니다
public String FirstName { get; set; }
거기서 내가 가서 얼마나 어떤 생각을 갖고 그 사람이 있나요 이것에 대해서?
내가 직접 OnMethodBoundaryAspect 클래스를 만들었지 만, ref 매개 변수를 사용하여 일반 구현을 호출하는 기술은 저를 배제합니다.
다음은 두 클래스입니다. get 및 set 속성에 대해 올바른 메서드를 자동으로 호출하도록 TestObject 클래스를 보완하고 싶습니다.
public class BaseObject
{
protected T GetProperty<T>(String propertyName,
ref T backingField)
{
return backingField;
}
protected Boolean SetProperty<T>(String propertyName,
ref T backingField,
T newValue)
{
backingField = newValue;
}
}
public class TestObject : BaseObject
{
public String FirstName
{
get;
set;
}
public String LastName
{
get;
set;
}
}
편집 :뿐만 아니라 PostSharp forum에 게시 됨.