我刚用Paypal打了一堵巨大的砖墙.我创建了一个常规的C#项目来使用他们的WSDL创建一些包装类.
如果创建非Web项目,则添加wsdl的唯一选项是Web服务引用.这构建了与Web Reference相同的一组代理类,但实际上并不是真的..即使是PayPal的人也不知道,它会增加更多.
所以我整个时间都在这个代理类列表中寻找正确的接口来用作服务(SoapBinding),并且PayPalAPIAASoapBinding我不在那里告诉我们PayPal接触点.
我只能看到以下2个接口,在我看来我需要使用的东西,因为我没有看到PayPalAPIAASoapBinding你在基于Web Reference的服务参考中看到的:
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
Run Code Online (Sandbox Code Playgroud)
所以我想通了哦,我可能已经创建了一个服务引用与一个Web引用,Web引用是Web项目中的一个选项.但我不希望我的服务引用与我的Web项目紧密耦合.这就是我创建C#项目的原因.
那么服务参考与Web参考究竟是什么呢?如果Service Reference要给我一个循环并给我一组不同于Web Reference的接口,我该怎么把它分成另一个项目呢?
此外,为了使事情更令人困惑,VS 2008有一个Web服务应用程序项目.
那我该怎么用? 我们正在使用.NET 3.5框架,我们还没有准备好转移到WCF.即使不使用WCF还是什么,我仍然可以使用新的服务参考吗?如果您使用的是.NET 3.5而不是WCF,并且您仍然想要进行基本的Web服务,那么您是否仍然使用服务参考路由而不使用WCF框架?它的含义是否可以像.NET 2.0 Web Reference一样使用,只是你将获得一个完全不同的WSDL生成?
我这里有一个奇怪的问题.我使用向导创建了一个简单的插件,用于带有工具窗口的Visual Studio集成包/ VSIX项目.在该窗口中,我想从列表框中进行简单的拖放操作并放在同一窗口中.我在普通的WPF程序中做了同样的事情,但是当我在WS工具窗口中执行此操作时,它是不允许的.我开始拖放操作(由PreviewMouseLeftButtonDown事件启动)并调用DragDrop.DoDragDrop()方法,我立即得到stop-sign-cursor.不允许拖动.
有任何想法吗?安全限制或这些WPF控件托管在ToolWindowPane和旧的Visual Studio IDE COM中的事实的影响我猜...感谢任何帮助!
我有一个关于通过规范模式实施业务规则的问题.请考虑以下示例:
public class Parent
{
private ICollection<Child> children;
public ReadOnlyCollection Children { get; }
public void AddChild(Child child)
{
child.Parent = this;
children.Add(child);
}
}
public class Child
{
internal Parent Parent
{
get;
set;
}
public DateTime ValidFrom;
public DateTime ValidTo;
public Child()
{
}
}
Run Code Online (Sandbox Code Playgroud)
业务规则应该强制在集合中不存在有效期与另一个相交的子节点.
为此,我想实现一个规范,如果添加了一个无效的子节点,则该规范用于抛出异常,并且在添加子节点之前也可以用于检查规则是否会被违反.
喜欢:
public class ChildValiditySpecification
{
bool IsSatisfiedBy(Child child)
{
return child.Parent.Children.Where(<validityIntersectsCondition here>).Count > 0;
}
}
Run Code Online (Sandbox Code Playgroud)
但在此示例中,子进程访问父进程.而对我来说似乎并不正确.当孩子尚未添加到父母时,该父母可能不存在.你会如何实现它?
附加的代码返回"注意:数组到字符串转换...".只是我的数组被作为包含"Array"字符的字符串处理到远程服务器.其余的变量都很好.
如何在$anarray没有这个问题的情况下传递我的数组?
<?php
$data = array(
'anarray' => $anarray,
'var1' => $var1,
'var2' => $var2
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "MY_URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
Run Code Online (Sandbox Code Playgroud) 我正在使用c#编写一个Outlook 2007加载项来存储SQL Server 2005数据库中的电子邮件.我希望能够将整个.msg文件存储在一个varbinary(MAX)字段中.有没有办法这样做,而不必使用Outlook MailItem的SaveAs()方法保存到临时文件,然后重新读取文件?我需要将大量电子邮件传输到数据库,并希望避免代价高昂的磁盘读写操作.
如果我有一个包含例如List <string>的类,并且我希望其他类能够看到列表但是没有设置它,我可以声明
public class SomeClass()
{
public List<string> SomeList { get; }
}
Run Code Online (Sandbox Code Playgroud)
这将允许另一个类访问SomeList而不设置它.
但是,尽管调用类无法设置列表,但它可以添加或删除元素.我该如何预防呢?我想我可以使用一个字段并返回List的副本而不是使用属性,但这感觉不对.
(这应该很简单但我必须遗漏一些......)
我很难使用maven来生成我的客户端.因此,请参阅我的问题的第一部分直接从源代码创建Web服务客户端.
为了简单和简短,我想从这里(src/main/java中的文件):
package com.example.maven.jaxws.helloservice;
import javax.jws.WebService;
@WebService
public class Hello {
public String sayHello(String param) {
; return "Hello " + param;
}
}
Run Code Online (Sandbox Code Playgroud)
到那里:
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.7-b01-
* Generated source version: 2.1
*
*/
@WebServiceClient(name = "HelloService", targetNamespace = "http://helloservice.jaxws.maven.example.com/", wsdlLocation = "http://localhost:8080/test/")
public class HelloService
extends Service
{
private final static URL HELLOSERVICE_WSDL_LOCATION;
private final static Logger logger = Logger.getLogger(com.example.wsimport.HelloService.class.getName());
...etc
Run Code Online (Sandbox Code Playgroud)
仅使用1个pom.xml文件.
请注意最后设置的wsdlLocation.pom.xml文件可能会使用maven-jaxws-plugin wsgen和wsimport以及一些棘手的配置来实现这一点.
使用JDBC结果集时,我希望得到Double而不是double,因为此列可以为空.当列为空时,Rs.getDouble返回0.0.
嗨,我在模型中使用has_and_belongs_to_many.我想设置各种存在的价值.并将每个核心的最大种类数设置为3
class Core < ActiveRecord::Base
has_and_belongs_to_many :kinds, :foreign_key => 'core_id', :association_foreign_key => 'kind_id'
end
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
谢谢