Need to add unit tests for `CanWrite=false`. Also, what happens if there's a setter but it's private/protected/internal?