z8018
2026-02-11 b8fb68b44c29e4667f6ea5746119413809a60a9e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using KH.WMS.Core.Attributes;
 
namespace KH.WMS.TestProj;
 
/// <summary>
/// 调用链追踪演示服务(接口模式 - 支持完整的方法链追踪)
/// </summary>
[LogInterceptor(LogParameters = true, LogReturnValue = true)]
public class CallTraceDemoService : ICallTraceDemoService
{
    private readonly ICallTraceDemoService _self;
 
    /// <summary>
    /// 构造函数 - 注入自己(代理对象)
    /// </summary>
    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()
    {
        // 发送通知
    }
}