private TypePolicy Member(string name, ApiAccess access, IMemberRewriter[] rewriters, Action <MemberPolicy> setup) { Argument.NotNullOrEmpty(nameof(name), name); if (Access == ApiAccess.Denied && access != ApiAccess.Denied) { throw new InvalidOperationException($"Member access ({access}) cannot exceed type access ({Access})."); } EnsureMembers(); if (!_members.TryGetValue(name, out var member)) { member = new MemberPolicy(access); _members.Add(name, member); } else { member.Access = access; } if (rewriters != null) { foreach (var rewriter in rewriters) { member.AddRewriter(rewriter); } } setup?.Invoke(member); return(this); }
private TypePolicy Member(string name, ApiAccess access, IMemberRewriter[]?rewriters, Action <MemberPolicy>?setup) { Argument.NotNullOrEmpty(nameof(name), name); if (Access == ApiAccess.Denied && access != ApiAccess.Denied) { throw new InvalidOperationException($"Member access ({access}) cannot exceed type access ({Access})."); } EnsureMembers(); if (!_members !.TryGetValue(name, out var member)) { member = new MemberPolicy(access); _members.Add(name, member); }