【问题标题】:Extending .NET MembershipCreateStatus enum扩展 .NET MembershipCreateStatus 枚举
【发布时间】:2014-02-06 18:12:03
【问题描述】:

基本上,我想要做的是向使用 .NET 打包的基本 MembershipCreateStatus 枚举添加更多项目。但是,显然您不能像这样进行“部分枚举”:

public partial enum CreateMembershipStatus
{
    DuplicateCompany = 12,
    ActivityTooRecent = 13,
    MultipleMatches = 14
}

有没有办法让我将项目添加到 CreateMembershipStatus 列表?我的目标是处理其他可预测的结果,而不是仅仅让用户捕获所有“用户拒绝”

谢谢!

【问题讨论】:

  • 不,没有办法做到这一点 - partial for classes 只能在一个项目中执行(源文件之间的区别在编译时消失)无论如何,如果 @ 可能的话987654323@s,来自不同程序集的不同附加值碰巧映射到相同的底层int 值会发生冲突,这可能是不支持此类扩展的原因。

标签: c# asp.net-mvc enums membership-provider


【解决方案1】:

您不能扩展枚举,因为它们是静态的,并且不添加 partial 关键字将不起作用,因为它不是一个类。您需要创建一个自定义容器,其中包含您想要的所有成员资格状态,然后使用它而不是“CreateMembershipStatus”枚举。

【讨论】:

    【解决方案2】:

    在我看来,您可以在调用 CreateUser() 之前执行自定义错误处理。或者,如果您在CreateUser() 调用失败后执行此操作,效果会更好。在这种情况下,您可以检查返回的 MembershipCreateStatus 值并根据状态执行其他检查并返回自定义消息。

    【讨论】:

    • 确实,这就是我最终要做的,我只是希望扩展枚举,因为我很懒:)。
    猜你喜欢
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    相关资源
    最近更新 更多