在ASMX Web服务之间共享一个枚举类型

7

我有一个Web服务项目,其中包含多个Web服务。其中两个Web服务共享在BL类中定义的枚举,如下所示:

public class HumanResourcesService
{
    public SomeLibrary.Employee GetEmployee(int employeeCode)
    {
       var employee = new SomeLibrary.Employee();
       employee.Type= SomeLibrary.EmployeeType.SomeType;
       return employee ;
    }
}

public class BankService
{
    public bool ProcessPayment(int employeeCode, EmployeeType employeeType)
    {
        bool processed = false;
        // Boring code
        return processed;
    }
}

这只是一个例子。

当在Web项目中引用时,两个Web服务会生成不同的EmployeeType枚举代理,因此我需要显式转换才能调用BankService中的ProcessPayment方法:

public void SomeMethod(int employeeCode)
{
     var hrService = new HumanResourcesService();
     var employee = hrService.GetEmployee(employeeCode);

     var bankService = new BankService();
     bankService.ProcessPayment(employee.Code, (MyProject.BankService.EmployeeType) employee.Type);
}

我知道.NET需要这样做才能创建WSDL,但是我能不能以某种方式使两个服务引用代理类中的相同枚举而不会破坏任何内容?


你是在使用WCF还是ASP.NET? - Kirk Broadhurst
2个回答

3

0

如果您公开相同的枚举,代理将正常工作:

public class BankService
{
    public bool ProcessPayment(int employeeCode, MyProject.BankService.EmployeeType employeeType)
    {
        bool processed = false;
        // Boring code
        return processed;
    }
}

public void SomeMethod(int employeeCode)
{
     var hrService = new HumanResourcesService();
     var employee = hrService.GetEmployee(employeeCode);

     var bankService = new BankService();
     bankService.ProcessPayment(employee.Code, employee.Type);
}

我公开了同一个枚举,在一个共享库中定义的。 - Meryovi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接