Tag: #wcf

将generic.list转换为ArrayOfInt,以便通过SOAP传输到Web服务

我正在尝试使用SOAP协议将一个通用的整数列表从客户端应用程序传递给Web服务。 当我尝试将列表作为参数传递给Web服务中声明的Web方法时,我收到错误“无法从generic.list转换为ArrayOfInt”。 我该如何解决这个问题? // web service method [WebMethod(CacheDuration = 30, Description = “Returns the calculated sum value of all numbers supplied in the list”)] public int CalculateListSum(int[] list) { int _sum = 0; foreach (int _val in list) { _sum += _val; } return _sum; } // client app buton click event private void btnRun_Click(object […]

使用linq到sql后端通过WCF查询DTO对象

我正在开发一个项目,我们需要针对WCF服务创建复杂的查询。 该服务在后端使用linq to sql并将查询投影到数据传输对象,如下所示: dbContext.GetQueryable() .Where(x => x.Id == formatId) .Select(x => FormatHelper.PopulateMSFormat(x)) .ToList(); 我想要做的是在客户端指定一个查询,假设我想查询具有某个属性或其中几个属性的所有格式。 这个风格的东西: var assets = client.QueryForAssets()。Where(x =>(x.name ==“Test”|| x ==“Arne”)&& x.doe ==“john”); 我知道我无法通过WCF返回IQueryable,但是可以使用OData服务完成类似的事情。 问题是我必须返回DTO和OData让我很容易绑定到L2S-datacontext,它暴露我的数据模型而不是DTO。 那么是否有一种很好的方法可以将针对DTO的查询序列化,从而有效地传播到l2s层? 我想过编写自己的查询语言,但我发现将正确的表达式树构建为l2s的谓词是很困难的,因为没有从DTO到linq类的映射。

如何制作可与默认WCF服务应用程序一起使用的UWP

如果您创建一个新项目WCF Service Application C#,它将创建一个Web服务并启动它。 但是没有关于如何从客户端实际与之通信的信息,或者如何编写它。 UWP客户端与该服务通信的外观如何?

如何在启动时初始化服务器?

我需要在启动服务器时建立一些连接。 我正在将wcf技术用于此客户端 – 服务器应用程序。 问题是服务器的构造函数不会在任何时候被调用,所以暂时我在第一个客户端建立连接时初始化连接。 但这会在另一部分产生问题。 这是我的服务器设置: private static ServiceHost _svc; static void Main(string[] args) { NetTcpBinding binding = new NetTcpBinding(SecurityMode.Message); Uri address = new Uri(“net.tcp://localhost:8000”); _svc = new ServiceHost(typeof(MonitoringSystemService), address); publishMetaData(_svc, “http://localhost:8001”); _svc.AddServiceEndpoint(typeof(IMonitoringSystemService), binding, “Monitoring Server”); _svc.Open(); Console.WriteLine(“Listener service gestart op net.tcp://localhost:8000/Monitoring”); Console.ReadLine(); } private static void publishMetaData(ServiceHost svc, string sEndpointAddress) { ServiceMetadataBehavior smb […]

XmlTypeAttribute仅适用于类中的属性

我正在尝试使用webservice将其解析为XML: [System.Xml.Serialization.XmlTypeAttribute(Namespace=”http://www.xx.com/zz/Domain”)] Public class A { public int element1; public int element2; } 这给了 1 1 我应该使用什么而不是XmlTypeAttribute来获取 1 1

有没有办法在没有IIS的情况下使用WCF自定义友好URL?

有没有办法在没有IIS的情况下使用WCF自定义友好URL? 特别是我希望通过我自己的Windows服务中托管的app.config来做这样的事情: [WebGet(UriTemplate = “foo/{id}”)] public string GetFoo(string id) { … }

WCF WSDL + Nillable属性

我有一个带有Flattened WSDL的WCF服务,而另一端的消费者告诉我nillable =“true”属性正在填充它们。 我尝试在服务合同中设置EmitDefaultValue = false,但我没有注意到行为的任何变化。 不可否认,我从来没有在这个级别深入研究WSDL生成,所以我有点迷失。 也许在下面发布的代码中可能会有一些调整可以解决我的问题? 如果我至少在正确的地方,我会继续调查。 有没有一种简单的方法可以从我的WSDL中删除nillable =“true”属性,这会产生意想不到的后果吗? 谢谢! public class FlatWsdl : IWsdlExportExtension, IEndpointBehavior { public void ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context) { XmlSchemaSet schemaSet = exporter.GeneratedXmlSchemas; foreach (ServiceDescription wsdl in exporter.GeneratedWsdlDocuments) { List importsList = new List(); foreach (XmlSchema schema in wsdl.Types.Schemas) { AddImportedSchemas(schema, schemaSet, importsList); } wsdl.Types.Schemas.Clear(); foreach (XmlSchema schema […]

WCF中的信息重用

在阅读SOA文章时,我在http://www.ibm.com/developerworks/websphere/library/techarticles/0806_boughannam/0806_boughannam.html上看到了一篇文章。 这解释了语义/逻辑服务。 有一个“来自销售部门的组织数据请求”的示例。 这种方法有助于克服孤岛概念。 我想知道是否有任何类似于本文中提到的体系结构的WCF实现。 虽然我做了一些搜索,但我找不到一个。 您能否提供此类实施的详细信息或提供WCF中类似实施的参考? 读: 使用SOA实现业务functionhttp://msdn.microsoft.com/en-us/architecture/aa699435 托管服务引擎的服务虚拟化http://msdn.microsoft.com/en-us/magazine/dd727511.aspx 托管服务引擎(MSE)路线图

从其他窗口刷新combobox列表,MVVM

我正在处理一些应用程序,我有一个问题。 我有两个窗口(预订 – 父母和客人 – 孩子)。 在父窗口中,我有一个包含guest虚拟机列表的combobox和一个用于添加新guest虚拟机的按钮。 单击该按钮时,将打开“宾客窗口(子窗口)”。 在子窗口中,我将新的guest添加到数据库中,并且工作正常。 我的问题是:如何在子窗口中添加新的guest虚拟机后刷新/更新父窗口中的combobox列表? 我知道属性的更改应该反映在视图中而不从数据库中检索数据(由于绑定)。 Bookings.xaml BookingsViewModel.cs private tblGuest guest; public tblGuest Guest // Selected guest from combo box { get { return guest; } set { guest = value; OnPropertyChanged(“Guest”); } } private ObservableCollection guests; public ObservableCollection Guests // Guests list in the combo box { get { […]

自托管WCF服务的多个实例

我们有一个“工作”服务从c#中的控制台应用程序运行,为了开发我们总是运行这个服务的单个实例,它获取数据块并执行一些计算,这些数据块由另一个服务提供(跟踪剩下多少数据等) 现在在QA中,我们希望同时运行“worker”服务的多个实例(在同一台机器上)。但是,只要第二个实例启动,我们就会得到exception: TransportManager无法使用NetTcpPortSharing服务侦听提供的URI:URI已在服务中注册。 我们正在使用netTcpBinding并且端点地址被硬编码到app.config中并保持不变,因此我假设我们收到此错误。 申请代码: var host = new ServiceHost(typeof(WorkerService)); host.Open(); 我们如何为每个实例提供不同的URI,以便至少端口保持不变? 或者如果有不同的方法来运行同一服务的多个实例?