我有一个继承自MVC类AuthorizeAttribute的类型。在我的构造函数(带参数)中,我想设置Roles属性但是我收到错误"这不是有效的对象构造表达式。显式对象构造函数必须调用备用构造函数或初始化对象的所有字段,并指定对超类构造函数的调用。"有人可以帮我解决我做错的事吗?
尝试#1:
type MyAuthorizer =
inherit AuthorizeAttribute
new([<ParamArray>] roles : string[]) =
let x = new MyAuthorizer()
//x.Roles <- ""
x
尝试#2。 (同样的错误):
type MyAuthorizer =
inherit AuthorizeAttribute
new([<ParamArray>] roles : string[]) =
{
inherit AuthorizeAttribute
Roles = ""
}
答案 0 :(得分:3)
尝试在对基础构造函数的调用中包含属性及其值,如下所示:
type MyAuthorizer([<ParamArray>] roles : string[])
inherit AuthorizeAttribute(Roles = "")
答案 1 :(得分:2)
语法有点令人困惑,但这应该有效。请注意take
关键字,它允许您执行任意副作用,例如指定then
的值。
Roles