HR 시스템의 경우 몇 년 전에해야했습니다. 쉽게 오디 팅 만들어 그것에 대해 흥미로운 부분이 있음을
class DataField<T>
{
public T Current { get; set; }
public T Original { get; set; }
// stores the field name as a nice textual readable representation.
// would default to property name if not defined.
public string FieldName { get; set; }
public bool Modified
{
get { return !(Current.Equals(Original));
}
public DataField(T value)
{
Original = Current = value;
}
public DataField(T value, T fieldName)
{
Original = Current = value;
FieldName = fieldName;
}
}
했다
: 여기
내가 아래로 손질 만든 템플릿의 예입니다 : 나는 내 모든 '필드'(일반) 템플릿을 구현하는 데 수행 각 객체는 자체 감사 로그를 생성 할 수 있습니다. 나는이 '필드'의 x 번호를 가질 수있는 객체를 취할 수 있으며 GetAudit을 호출하면 필드 이름, 이전 val, 새 val 등을 표시하는 클래스의 모든 변경 사항이 포함 된 감사 객체를 반환합니다. 각 'DataField'는 감사 개체를 반환하는 메서드를 구현합니다. 문자열, double, ints 등의 경우에는 거의 구워졌지만 사용자 정의 객체를 사용하면 감사 객체를 반환해야하는 객체에 대해 감사 구현을 작성할 수 있습니다.
결국 전형적인 형태로 모든 유형의 필드를 가진 하나의 객체에 모든 데이터가 저장됩니다. 그런 다음 업데이트를 수행하고 감사 테이블에도 기록되는 GetAudit 메서드를 호출합니다.
아무것도 형태로 변경했다면 내가 쉽게 여러 페이지 등
취소의뿐만 아니라 부분 또는 전체 개체 수준에 의해 필드, 섹션으로 필드에 정말 쉬웠다 통과했다하더라도 말할 수
.
오랫동안 코드를 건드리지 않았으므로 정확한 세부 사항에 약간의 안개가 낀다. 그러나 그것은 그 요지였다. 희망이 도움이됩니다.
이미 AOP를 고려해 보셨습니까? – Paco