ASP.NET Membership默认值

时间:2011-06-30 01:49:11

标签: c# asp.net membership

对于此属性,

MSDN相当模糊。

  

自定义数据字符串可以设置为   任何字符串值,并使用   customProviderData属性   添加配置元素以进行添加   个人资料。

这是MSDN式的说法自己解决这个问题。

从描述中可以看出,它只是简单的文本,您只是从web.config传递给自定义提供程序。但它不是那样的,这个字符串似乎构建了给定属性将保存的数据类型,我想知道具体格式是什么。

特别是,我有以下属性(还有一些属性,但我只是举例说明两个)

    [SettingsAllowAnonymous(false)]
    [CustomProviderData("NotificationTypes;nvarchar;255")]
    public string NotificationTypes
    {
        get { return base["NotificationTypes"] as string ?? "Email"; }
        set { base["NotificationTypes"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    [CustomProviderData("IssuesPageSize;int")]
    public int IssuesPageSize
    {
        get { return base["IssuesPageSize"] as int? ?? 10; }
        set { base["IssuesPageSize"] = value; }
    }

这里,自定义数据似乎确定了字段的名称,db类型和db长度。我想知道这个属性是否可以保留默认值。

我的问题如下:

base[attrib]实施中ProfileBase是否可以为空? 如果我想设置默认值,我应该查看0string.Empty吗?

关键是如果base[attrib]不能为空,我不需要int?强制转换,我应该检查0,在这种情况下,并反对前一个string.Empty

也就是说,除非有一种“更快乐”的方式来设置默认值,就像在web.config中输入一样:

<add name="NotificationTypes" type="String" defaultValue="Email" customProviderData="NotificationTypes;nvarchar;255" />

我想我是在问我如何添加一个与上面<add/>标签中的属性完全相同的属性,但是以编程方式添加。

1 个答案:

答案 0 :(得分:1)

想出来补充一下:

    static SharedMembershipProfile()
    {
        Properties["IssuesPageSize"].DefaultValue = 10;
        Properties["NotificationTypes"].DefaultValue = "Email";
        Properties["PreferredLocale"].DefaultValue = "en-US";
    }

仍然想知道是否有更好的方法,如属性,或更多“自动连线”