2014-02-06 51 views
2

基本上,我想要做的是将更多的项目添加到与.NET打包的基本MembershipCreateStatus枚举。然而,apparantly你不能做一个“局部枚举,”就像这样:扩展.NET MembershipCreateStatus枚举

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

有没有办法,我将项目添加到列表CreateMembershipStatus?我的目标是处理其他可预测的结果,而不是仅仅向用户提供所有“用户被拒绝”的答案。

谢谢!

+0

不,没有办法这么做 - 对于类的“partial”只能在一个项目中执行(源文件之间的区别在编译时会消失),并且如果可能的话对于'enum's,不同的来自不同程序集的附加值碰巧映射到相同的基础'int'值会发生冲突,这可能是不支持这种扩展的原因。 –

回答

2

您不能扩展枚举,因为它们是静态的,不会添加partial关键字,因为它不是类。您将需要创建一个自定义容器,其中包含所需的所有成员身份状态,然后使用该容器代替“CreateMembershipStatus”枚举。

0

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

+0

的确,这就是我最终做的事情,我只是希望延长枚举,因为我懒惰:)。 – zach