【发布时间】:2013-10-08 22:43:36
【问题描述】:
我正在使用 SimpleMembership 提供程序并添加要在注册时保存的其他字段。
为了在注册时保存其他字段,我使用到处使用的方法,例如Seed Users and Roles with MVC 4, SimpleMembershipProvider, SimpleRoleProvider, Entity Framework 5 CodeFirst, and Custom User Properties.
我使用在我的 HttpPost ActionResult Register 方法中调用的以下 SimpleMembership 提供程序方法。
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { FirstName = registerModel.FirstName, LastName = registerModel.LastName, CompanyName = registerModel.CompanyName});
其他字段由对象类型的按值方法参数添加。对此的描述是“包含附加用户属性的字典”
这可行,但我安装了 JetBrains ReSharper 8,并且对于属性名称,我收到“冗余显式属性名称”警告。
要删除警告,我将代码更改为:
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { registerModel.FirstName, registerModel.LastName, registerModel.CompanyName});
我的问题是:
1) 对于这个匿名对象参数,我现在删除了属性名称,因此我不再收到 Resharper 警告,它如何知道属性名称将用于匹配 db 属性类,因为它们是按值传递?
2) 是否包含属性名称的最佳做法是什么。不包含它们不是很可读,并且在代码示例中指定了它们,所以我想将它们包含在可读性上比删除它更好。
【问题讨论】: