【发布时间】:2011-06-30 11:07:37
【问题描述】:
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; }
}
这里,自定义数据似乎决定了字段的名称、数据库类型和数据库长度。我想知道这个属性是否可以保持默认值。
那么,我的问题如下:
base[attrib] 可以在 ProfileBase 实现中为空吗?
如果我想设置默认值,我应该只检查0 和string.Empty 吗?
关键是如果base[attrib] 不能为空,我不需要int? 演员表,我应该只检查0,在这种情况下,检查string.Empty上一个。
也就是说,除非有一种“更快乐”的方式来设置默认值,就像在 web.config 中你只需键入:
<add name="NotificationTypes" type="String" defaultValue="Email" customProviderData="NotificationTypes;nvarchar;255" />
我想我问的是如何添加一个在功能上与上面<add/> 标记中的属性完全相同的属性,但以编程方式。
【问题讨论】:
标签: c# asp.net membership