using KH.WMS.Core.Attributes; namespace KH.WMS.TestProj; /// /// 调用链追踪演示服务(接口模式 - 支持完整的方法链追踪) /// [LogInterceptor(LogParameters = true, LogReturnValue = true)] public class CallTraceDemoService : ICallTraceDemoService { private readonly ICallTraceDemoService _self; /// /// 构造函数 - 注入自己(代理对象) /// public CallTraceDemoService(ICallTraceDemoService self) { _self = self; // 这里的 self 是代理对象,不是 this } public string ProcessOrder() { // 通过代理调用,内部方法也会被拦截 ✅ _self.ValidateOrder(); _self.CalculatePrice(); _self.SaveOrder(); return "Order processed successfully"; } public void ValidateOrder() { // 通过代理调用,子方法也会被拦截 ✅ _self.CheckInventory(); _self.CheckCustomer(); } public bool CheckInventory() { return true; } public bool CheckCustomer() { return true; } public decimal CalculatePrice() { _self.ApplyDiscount(); return 100.50m; } public void ApplyDiscount() { // 折扣逻辑 } public void SaveOrder() { _self.NotifyCustomer(); } public void NotifyCustomer() { // 发送通知 } }