小编Sta*_*t99的帖子

WCF服务引用从WSDL生成void方法

这是我第一次尝试使用WCF,所以我猜我做错了.我正在尝试访问由WSDL定义的SOAP服务http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1?wsdl我正在使用VS2010,我在项目中添加了一个服务引用并将其指向那里的URL(或者更确切地说,我们的内部网安装),但是当我使用对象浏览器查看服务时,接口上的操作是没有参数的所有void方法.似乎WCF没有正确读取类型信息.它没有给出错误,但它提供了大量的警告,如下所示:

警告1自定义工具警告:操作中名为InvalidSessionException的故障无法导入getPermissions.不支持的WSDL,故障消息部分必须引用一个元素.此错误消息不引用元素.如果您具有对WSDL文档的编辑权限,则可以通过使用"element"属性引用schema元素来解决问题.Z:\ TestLibrary\Service References\Confluence\Reference.svcmap 1 1 TestLibrary

警告2自定义工具警告:未处理命名空间" http://schemas.xmlsoap.org/wsdl/soap/ "中的可选WSDL扩展元素"body" .XPath:// wsdl:definitions [@ targetNamespace =' http ://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1']/wsdl:binding [@ name ='confluenceservice-v1SoapBinding']/wsdl: operation [@ name ='getPermissions']/wsdl:input [@ name ='getPermissionsRequest'] Z:\ TestLibrary\Service References\Confluence\Reference.svcmap 1 1 TestLibrary

我究竟做错了什么?我尝试使用选项组合来更改服务的配置,但我永远无法正确地从WSDL中提取类型.我一直在假设WCF会自动生成类型类以及服务接口.我是否应该弄清楚WSDL​​中正在使用哪些类型并自己创建类和数据合同,还是其他什么?

c# wcf web-services visual-studio-2010

10
推荐指数
1
解决办法
4580
查看次数

在NHibernate中使用HashSet时,Collection不能为null异常

我的NHibernate实体中有以下内容:

    private ICollection<string> _stringSet = new HashSet<string>();
    public virtual ICollection<string> StringSet
    {
        get { return _stringSet; }
    }
Run Code Online (Sandbox Code Playgroud)

然后,在我的Fluent映射中,我将其映射为:

    HasMany(x => x.StringSet)
        .Table("String_Set")
        .Element("StringValue")
        .AsSet();
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试保存实体时,我得到一个ArgumentNullException说法"收集不能为空".如果我将我的字段默认为List,我不会收到此错误,但正如您在我的映射中所看到的,我想要Set行为,即使是来自未保存的实体.在我看来,HashSet<>没有实现非泛型的问题ICollection.为未保存的实体设置行为的正确方法是什么?我也希望保留ICollection<string>我的暴露类型.

c# nhibernate nhibernate-mapping fluent-nhibernate

5
推荐指数
1
解决办法
1451
查看次数