示例#1
0
        public void Intercept(IInvocation invocation)
        {
            var method = invocation.Method;
            var member = _state.PropertyOf(method);

            switch (member.role)
            {
            case PropertyMethodRole.None:
                throw new InvalidOperationException($"Attempting to invoke a state member that is not a property: {method.Name}");

            case PropertyMethodRole.Getter:
                _doGet(member.prop, invocation);
                break;

            case PropertyMethodRole.Setter:
                _doSet(member.prop, invocation);
                break;
            }
        }