1
您是否知道spring.net中的任何切入點定義僅攔截公共屬性setter(標準屬性和自動執行屬性)?Spring.Net公共屬性setter切入點
有沒有辦法通過名稱刪除某些屬性(Id,Version ...)?
是否有可能將切點縮小到某個基類(EntityBase)的子節點?
正如你所看到的,我不是Spring.net尖端高手^^但我找不到信息。
背後的想法是做一個自動髒標誌。在下面的例子中,目標是僅爲數據屬性設置器設置IsDirty = True。
我現在使用的代碼定義不是在春季配置文件,但兩種解決方案應該沒問題,我認爲。
現有代碼:
[Serializable]
public class EntityBase
{
public string Id { get; set; }
public long Version { get; set; }
public bool IsDeleted { get; set; }
public bool IsDirty { get; set; }
}
[Serializable]
public class Entity : EntityBase
{
public string Data { get; set; }
}
public class DirtyInterceptor : IMethodInterceptor
{
#region IMethodInterceptor Members
public object Invoke(IMethodInvocation invocation)
{
object returnValue = invocation.Proceed();
((EntityBase)invocation.Target).IsDirty = true;
return returnValue;
}
#endregion
}
...
foreach (object item in keyCache.CachedModel.Values)
{
ProxyFactory factory = new ProxyFactory(item);
factory.AddAdvisor(new DefaultPointcutAdvisor (new SdkRegularExpressionMethodPointcut(???), new DirtyInterceptor()));
T ent = (T)factory.GetProxy();
returnList.Add(ent);
}
好的,謝謝,我會看看這個 – Vince 2010-02-16 09:04:57