通过WCF公开类结构?

时间:2011-05-31 12:14:36

标签: asp.net-mvc wcf c#-4.0

我有一个简单的类,其中包含对服务的请求所需的属性。

我希望消费者在他们的最后实例化这个类,填充它,然后将其传递回服务。也许我正在使用的术语并不完全正确,但我确信我已经阅读了过去在其他系统上可能实现的一些项目说明。

[DataContract]
public class SearchRequestObject
{
    [DataMember]
    public string WebsiteGuid { get; set; }

}

我在服务项目中设置了DataContract和DataMember。一旦我发布它并在另一个项目上使用它,我就不会在任何地方看到SearchRequestObject。我猜这是因为它必须在服务的界面中定义?如果是这样,怎么样?

感谢。

1 个答案:

答案 0 :(得分:1)

通常,SearchRequestObject将是您的某个服务方法中使用的对象之一,例如:

[ServiceContract(ConfigurationName = "IWCFService")]
public interface ICascadeManagementService
{
    [OperationContract(Action = "http://tempuri.org/IWCFService/DoSearch")]
    SearchResponseObject DoSearch(SearchRequestObject searchRequest);
}

当您的客户端类自动生成时,它们将在reference.cs文件中包含SearchRequestObject,其中包含定义。

如果它已经包含在方法中,则可能无法生成它,因为您的客户端项目直接引用了定义SearchRequestObject的项目,并且当您创建服务引用时,您正在重用引用程序集中的类型。您可以检查是否在客户端项目的引用列表中有引用,以及是否在“添加服务引用”对话框的“高级”部分中重用引用程序集中的类型。