我正在使用SimpleMembership提供程序并添加其他字段以在注册时保存.
要在注册时保存其他字段,我使用在任何地方使用的方法,例如Link
我使用我的HttpPost ActionResult Register方法中调用的以下SimpleMembership提供程序方法
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { FirstName = registerModel.FirstName, LastName = registerModel.LastName, CompanyName = registerModel.CompanyName});
Run Code Online (Sandbox Code Playgroud)
其他字段由object类型的by值方法参数添加.对此的描述是"包含其他用户属性的字典"
这样可行.
我的问题是我安装了Jetbrains Resharper 8,对于属性名称,我得到了"冗余显式属性名称"警告.要删除警告,我更改我的代码将如下所示:
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { registerModel.FirstName, registerModel.LastName, registerModel.CompanyName});
Run Code Online (Sandbox Code Playgroud)
我的问题是1)对于这个匿名对象参数,我现在删除属性名称,所以我不再得到Resharper警告,它是如何知道属性名称将用于匹配db属性类,因为它们被传递按价值?
2)具有或不具有属性名称的最佳实践是什么.没有它们是不是非常可读,并且在代码示例中它们被指定,所以我认为将它们放在更好的可读性而不是删除它
Jon*_*eet 10
我的问题是1)对于这个匿名对象参数,我现在删除属性名称,所以我不再得到Resharper警告,它是如何知道属性名称是什么,因为它们是通过值传递的?
名称由表达式推断(由编译器提供).这仅适用于您使用字段或属性(例如,不是文字或方法).这是C#语言规范的第7.6.10节.
2)具有或不具有属性名称的最佳实践是什么.没有它们是不是很可读,并且在代码示例中它们是指定的,所以我认为让它们更好而不是删除它
如果您和您的团队始终包含该名称更具可读性,那么请继续这样做.对于其他人来说,可能会感到有点多余.只需调整您的R#设置即可适合您的本地约定.
您在"在代码示例中指定它们"的论点虽然似是而非 - 有一些示例指出了它们,有些则指出它们不是.我怀疑你甚至会在特定的示例提供程序中找到混合物(例如在MSDN中).
| 归档时间: |
|
| 查看次数: |
3132 次 |
| 最近记录: |