我可以将服务中的公共类从WCF中的[operationcontract]调用到客户端吗?这是我的代码:
Service.svc.cs
public class Service : IService
{
public class UserRights
{
public static bool _canEdit;
}
}
这是给我的 IService.cs
[ServiceContract]
public interface IService
{
[OperationContract(Name = "UserRightsContract")]
public class UserRights;
}
更新
我想通过WCF将公共类UserRights
公开给客户端。我在想是否有可能创建一个方法来向客户端公开类?
答案 0 :(得分:1)
公开UserRights
类的唯一方法是在Method Call
使用DataContract
[DataContract]
public class UserRights
{
[DataMember]
public static bool _canEdit;
}
将方法添加到您的界面
[ServiceContract]
public class Service : IService
{
...
[OperationContract]
UserRights GetUserRights();
}
在您的服务中实施
public class Service : IService
{
public UserRights GetUserRights()
{
return new UserRights();
}
}
答案 1 :(得分:0)
我可以在WCF中从服务调用公共类到[operationcontract] 暴露给客户?
你做不到。您只能使用WCF公开方法。
您在界面中所写的内容也不正确。你不需要公开,默认情况下一切都是公开的。
如果要公开类的实例,可以执行类似的操作。
[ServiceContract]
public interface IService
{
[OperationContract(Name = "UserRightsContract")]
UserRights GetUserRights();
}
实施
public class Service : IService
{
public UserRights GetUserRights()
{
UserRights userRights = new UserRights();
//Set other properties.
return userRights;
}
}
[DataContract]
public class UserRights
{
[DataMember]
public static bool _canEdit;
}