【问题标题】:Reduce redundancy in declaring enum and make them generic减少声明枚举的冗余并使它们通用
【发布时间】:2014-01-24 05:25:46
【问题描述】:

当我们添加任何其他枚举时,我想减少此页面中的冗余工作。每当我在我的 wcf 服务中添加新方法时,需要为此页面中的枚举做同样的工作。

我们如何改进这段代码?

using System.Runtime.Serialization;

namespace TT.Core
{
/// <summary>
/// Defines the Login type possible values, API, B2B, B2B2B etc..
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoginType
{
    [EnumMember]NotSet = 0,
    [EnumMember]B2B = 1,
    [EnumMember]Api = 2,
    [EnumMember]B2B2B = 3
}

/// <summary>
/// Defines the AgencyStatusType possible values, Activated, DeActivated etc..
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum AgencyStatusType
{
    [EnumMember]NotSet = 0,
    [EnumMember]Activated = 1,
    [EnumMember]DeActivated = 2,
    [EnumMember]Freeze = 3,
    [EnumMember]UnFreeze = 4
}

/// <summary>
/// Defines the MemberStatusType possible values, Activated, DeActivated etc..
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum MemberStatusType
{
    [EnumMember]NotSet = 0,
    [EnumMember]Active = 1,
    [EnumMember]InActive = 2
}

/// <summary>
/// Defines the Login type possible values, API, B2B, B2B2B etc..
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadMemberType
{
    [EnumMember]NotSet = 0,
    [EnumMember]ByLoginName = 1,
    [EnumMember]ByMemberId = 2,
    [EnumMember]ByAccountCode = 3,
    [EnumMember]ByEmail = 4,
    [EnumMember]LoadDeactiveMemberAlso = 5
}


/// <summary>
/// Defines the Request type for Load memeber or authenticate member
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum RequestType
{
    [EnumMember]NotSet = 0,
    [EnumMember]LoadMember = 1,
    [EnumMember]AuthenticateMember = 2
}

/// <summary>
/// Defines the status of GetUserPreference status
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UserPreferenceResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]InValidRequest = 4
}


/// <summary>
/// Defines the status of SaveUserPreference status
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SavePreferenceResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]InValidRequest = 4
}

/// <summary>
/// Defines the status of Authenticate response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum AuthenticateResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InCorrectUserName = 3,
    [EnumMember]InCorrectPassword = 4
}


/// <summary>
/// Defines the status of Logout response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LogoutResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
}

/// <summary>
/// Defines the status of Load Members response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadMemberResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InCorrectUserName = 3,
    [EnumMember]InValidPassword = 4,
    [EnumMember]InValidSession= 5
}

/// <summary>
/// Defines the status of SaveMember response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveMemberResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]SuccessfulAdded = 1,
    [EnumMember]SuccessfulUpdated = 2,
    [EnumMember]Failed = 3,
}

/// <summary>
/// Defines the status of LoadAgency response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadAgencyResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
}

/// <summary>
/// Defines the status of UpdateLccBalanceResponseStatus
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateLccBalanceResponseStatus
{
    [EnumMember] NotSet = 0,
    [EnumMember] Successful = 1,
    [EnumMember] InValidSession = 2,
    [EnumMember] InValidRequest = 3,
    [EnumMember] Failed = 4
}


/// <summary>
/// Defines Error Types for UpdateLccBalanceErrorType(Like InvalidCredentials, InvalidSearchRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateLccBalanceErrorType
{
    [EnumMember] NotSet = 0,
    [EnumMember] InValidSession = 1,
    [EnumMember] InvalidRequest = 2,
    [EnumMember] TechnicalError = 3
}

/// <summary>
/// Defines the status of LoadApplication response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadApplicationResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
}

/// <summary>
/// Defines the status of SaveAgency response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveAgencyResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]SuccessfulAdded = 1,
    [EnumMember]SuccessfulUpdated = 2,
    [EnumMember]Failed = 3,
}


/// <summary>
/// Defines the status of SaveAgency response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum AgencyApplicationResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]SuccessfulAdded = 1,
    [EnumMember]SuccessfulUpdated = 2,
    [EnumMember]Failed = 3,
}

/// <summary>
/// Defines Error Types for UserPreferenceErrorType(Like InvalidCredentials, InvalidSearchRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UserPreferenceErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidCredentials = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3,
    [EnumMember]InValidSession = 4
}

/// <summary>
/// Defines Error Types for UserPreferenceErrorType(Like InvalidCredentials, InvalidSearchRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SavePreferenceErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidRequest = 1,
    [EnumMember]TechnicalError = 2,
    [EnumMember]InValidSession = 3
}

/// <summary>
/// Defines the status of UpdateAgencyStatus response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateAgencyResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]InValidRequest = 4,
    [EnumMember]ActiveAgency = 5
}


/// <summary>
/// Defines the status of UpdateAgencyStatus response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum ActiveInActiveUserResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]InValidRequest = 4,
    [EnumMember]ActiveMembers = 5
}

/// <summary>
/// Defines Error Types for AuthenticateErrorType(Like InvalidCredentials, InvalidSearchRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum AuthenticateErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidCredentials = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3
}


/// <summary>
/// Defines Error Types for LoadMemberErrorType(Like InvalidCredentials, InvalidRequest, session expire etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadMemberErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidCredentials = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]InvalidSession = 3,
    [EnumMember]TechnicalError = 4
}

/// <summary>
/// Defines Error Types for LoadAgencyErrorType(Like InvalidRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadAgencyErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidAgencyId = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3
}

/// <summary>
/// Defines Error Types for SaveAgencyErrorType(Like InvalidRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveAgencyErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidAgencyId = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3
}

/// <summary>
/// Defines Error Types for SaveAgencyErrorType(Like InvalidRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveMemberErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidMemberId = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3
}


/// <summary>
/// Defines Error Types for Logout
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LogoutErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidToken = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3
}

/// <summary>
/// Defines Error Types for save agency Application 
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum AgencyApplicationErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidRequest = 1,
    [EnumMember]TechnicalError = 2
}


/// <summary>
/// Defines Error Types for load applications of new agency creation
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadApplicationErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidRequest = 1,
    [EnumMember]TechnicalError = 2
}

/// <summary>
/// Defines Error Types for UpdateAgency status
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateAgencyStatusErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidRequest = 1,
    [EnumMember]TechnicalError = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]ActiveAgency = 4
}


/// <summary>
/// Defines Error Types for UpdateAgency status
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum ActiveInActiveUserErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidRequest = 1,
    [EnumMember]TechnicalError = 2,
    [EnumMember]InValidSession = 3,
    [EnumMember]ActiveMembers = 4
}

/// <summary>
/// Defines the status of Task Role response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum TaskRoleResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InvalidSession = 3,
    [EnumMember]InvalidRequest = 4
}
///<summary>
///Define Error Types for Role and Task Status
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum TaskRoleErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidSession = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3,
    [EnumMember]InvalidRoleId = 4,
    [EnumMember]InvalidTaskType = 5,
    [EnumMember]InvalidCredentials = 6

}

/// <summary>
/// Defines the status of Task Role response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateTaskResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InvalidSession = 3,
    [EnumMember]InvalidRequest = 4
}
///<summary>
///Define Error Types for Role and Task Status
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum UpdateTaskErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidSession = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3,
    [EnumMember]InvalidRoleId = 4,
    [EnumMember]InvalidTaskType = 5,
    [EnumMember]InvalidCredentials = 6,
    [EnumMember]InvalidCreatedBy = 7,
    [EnumMember]AlreadyExist = 8

}
///<summary>
///Define the Action to perform
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum ActionToPerfrom
{
    [EnumMember]NotSet = 0,
    [EnumMember]RemoveTask = 1,// if its 1 than it will remove the task for that role
    [EnumMember]AssignTask = 2, //if value is 2 then it will Assign Task to that particular role 
}

///<summary> Define the status of the Role Response.
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum RoleModificationResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InvalidSession = 3,
    [EnumMember]InvalidRequest = 4,
    [EnumMember]InvalidIPAddress =5,
}
///<summary>
///Define Error Types for Role and Task Status
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum RoleModificationErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidSession = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3,
    [EnumMember]InvalidTaskType = 4,
    [EnumMember]InvalidCredentials = 5,
    [EnumMember]InvalidCreatedBy = 6,
    [EnumMember]InvalidIPAddress = 7,
    [EnumMember]AlreadyPresent = 8,
    [EnumMember]AlreadyRemoved = 9,
    [EnumMember]Assigned = 10,
    [EnumMember]Removed = 11,
    [EnumMember]Failed = 12,
    [EnumMember]NotExists = 13,

}


///<summary> Define the status of the RoleGroupModification Response.
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveRoleGroupResponseStatus
{
    [EnumMember]NotSet = 0,
    [EnumMember]Successful = 1,
    [EnumMember]Failed = 2,
    [EnumMember]InvalidSession = 3,
    [EnumMember]InvalidRequest = 4,
}
///<summary>
///Define Error Types for Role and Task Status
///</summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveRoleGroupErrorType
{
    [EnumMember]NotSet = 0,
    [EnumMember]InvalidSession = 1,
    [EnumMember]InvalidRequest = 2,
    [EnumMember]TechnicalError = 3,
    [EnumMember]AlreadyPresent = 4,
    [EnumMember]AlreadyRemoved = 5,
    [EnumMember]Assigned = 6,
    [EnumMember]Removed = 7,
    [EnumMember]Failed = 8,
    [EnumMember]NotExists = 9,
    [EnumMember]InvalidIPAddress = 10,
    [EnumMember]Deactive = 11,

}

/// <summary>
/// Defines Error Types for SaveSupplierErrorType(Like InvalidRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveSupplierErrorType
{
    [EnumMember]
    NotSet = 0,
    [EnumMember]
    InvalidSupplierId = 1,
    [EnumMember]
    InvalidRequest = 2,
    [EnumMember]
    TechnicalError = 3
}

/// <summary>
/// Defines the status of SaveSupplier response.
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum SaveSupplierResponseStatus
{
    [EnumMember]
    NotSet = 0,
    [EnumMember]
    SuccessfulAdded = 1,
    [EnumMember]
    SuccessfulUpdated = 2,
    [EnumMember]
    Failed = 3,
}



[DataContract(Namespace = "SharedServices")]
public enum LoadSupplierResponseStatus
{
    [EnumMember]
    NotSet = 0,
    [EnumMember]
    Successful = 1,
    [EnumMember]
    Failed = 2,
}

/// <summary>
/// Defines Error Types for LoadAgencyErrorType(Like InvalidRequest etc.)
/// </summary>
[DataContract(Namespace = "SharedServices")]
public enum LoadSupplierErrorType
{
    [EnumMember]
    NotSet = 0,
    [EnumMember]
    InvalidSupplierId = 1,
    [EnumMember]
    InvalidRequest = 2,
    [EnumMember]
    TechnicalError = 3
}

}

编写此代码的最佳和优化方法是什么?

【问题讨论】:

标签: c# wcf generics enums


【解决方案1】:

为什么不只创建几个枚举呢? 一个代表所有可能的响应状态。 一种用于所有可能的错误类型。 等等……

否则,也许 VS.NET 内置代码生成器可以提供帮助。 查看Code Generation and T4 Text Templates 了解一些(基本)信息。 开始并不容易,但你可以用它做一些强大的事情......

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2019-06-20
    • 2020-06-27
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多