我在将我的公共枚举类从我的WCF服务分享到我的客户端程序时遇到问题。 (我希望能够从我的客户端程序访问每个枚举属性)。 (我已将我的服务添加为服务参考)。 (为了测试我只有两个EnumMemer - 我知道..)
我在Service.svc.cs文件中有这个:
namespace ITHelperService
{
[DataContract]
public class Service : IService
{
[DataMember]
public CommandsEnums comands;
[DataContract(Name="CommandsEnums")]
public enum CommandsEnums
{
[EnumMember]
Get_IPConfig,
[EnumMember]
Get_IPConfig_all,
Get_BIOSVersion,
Get_JavaVersion,
Get_RecentInstalledPrograms,
Get_RecentEvents,
Get_WEIScore,
Do_Ping,
Do_NSLookup
}
}
}
这是我的IService.cs文件:
namespace ITHelperService
{
[ServiceContract]
[ServiceKnownType(typeof(ITHelperService.Service.CommandsEnums))]
public interface IService
{
}
}
我在互联网上搜索过这个问题,似乎上面应该可以解决这个问题。 但我无法在我的客户端程序中访问它们。它不会出现在intellisense中。
请输入任何内容?
答案 0 :(得分:1)
我认为你在这里混淆了一些事情。
我建议像这样的smth: IService.cs文件:
namespace ITHelperService
{
[ServiceContract]
[ServiceKnownType(typeof(ITHelperService.Service.CommandsEnums))]
public interface IService
{
[OperationContract]
void Test();
}
}
Service.svc.cs文件:
namespace ITHelperService
{
[DataContract]
public class Service : IService
{
public void Test()
{
// This is the method that you can call from your client
}
}
[DataContract(Name="CommandsEnums")]
public enum CommandsEnums
{
[EnumMember]
Get_IPConfig,
[EnumMember]
Get_IPConfig_all,
Get_BIOSVersion,
Get_JavaVersion,
Get_RecentInstalledPrograms,
Get_RecentEvents,
Get_WEIScore,
Do_Ping,
Do_NSLookup
}
}
答案 1 :(得分:0)
您的枚举不应包含在服务器端代码中。如果要共享公共代码,请将其放在公共位置。这样客户端和服务器都可以引用它。