谁调用了我之[CallerMemberName]

经常有这种情况,写了个功能,发现无故短时间内被多调用。但是业务逻辑应该是单位时间内只允许最多 N次调用。

通常我们就会写上次和这次调用 时间比较 如果太短直接return.

但是这不是解决的根本。因此我想知道到底是谁调用了我?

这个需求一直好早就有,但感觉没有这种好的简单的实现方式。

今天偶然WPF看到了一个属性更改的通知这里

public bool IsPlaying
        {
            get => _IsPlaying;
            set 
           { 
                _IsPlaying = value; 
                RaisePropertyChanged(); 
             }
       }                                        
RaisePropertyChanged()通知这个改变,咦?无参的?多个属性不同的属性改变都使用这个,那他怎么通知具体是哪个属性改变了?
是不是就是调用他的地方 这个他自动获取的?
果然 [CallerMemberName] 这个特性。。。查下相关的还有
CallerFilePath CallerLineNumber 所以。。这里是不是可以类似搞出些调试模式下想看到的内容呢,
先就记录在这。后续有时间再细研究配合作用。
posted @ 2023-08-17 14:01  stweily  阅读(24)  评论(0编辑  收藏  举报