I am using the SimpleMembership provider and adding additional fields to be saved on registration.

To save additional fields on registration I use the method used everywhere e.g. [Seed Users and Roles with MVC 4, SimpleMembershipProvider, SimpleRoleProvider, Entity Framework 5 CodeFirst, and Custom User Properties](https://blog.longle.io/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/).

I use the following SimpleMembership provider method called in my HttpPost ActionResult Register method.

```
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
    new { FirstName = registerModel.FirstName, LastName = registerModel.LastName, CompanyName = registerModel.CompanyName});

```

Additional fields get added by a by value method parameter of type object. The description for this is "A dictionary that contains additional user attributes"

This works, but I have JetBrains ReSharper 8 installed and for the property names I get "redundant explicit property name" warnings.

To remove the warnings I changed my code to:

```
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
    new { registerModel.FirstName, registerModel.LastName, registerModel.CompanyName}); 

```

My questions are:

1) for this anonymous object parameter where I now remove the property names so I don't get the Resharper warnings anymore, how does it know what the property names will be use to match to the db property class, since they are passed by value?

2) what is best practice having the property names in or not. Having them not in is not very readable and in code samples they are specified, so I would imagine having them in is better for readability rather than removing it.