Tag: proxy classes

来自WSDL的详细ServiceDescription / Proxy

我使用ServiceDescription / ServiceDescriptionImporter类来动态调用Web服务。 我想更深入地了解WSDL描述并得到 1)每个Web方法的参数信息 2)所有Web方法的每个参数的实际类型/组成(即,如果WebMethod将某些复杂类型作为参数,我需要知道它由原型/其他类型组成,如果可能的话) 这是动态调用的代码: public static object CallWebService(string webServiceAsmx, string serviceName, string methodName, object[] args = null) { WebClient client = new WebClient(); Stream stream = client.OpenRead(webServiceAsmx + “?wsdl”); ServiceDescription description = ServiceDescription.Read(stream); ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); importer.ProtocolName = “Soap12”; importer.AddServiceDescription(description, null, null); importer.Style = ServiceDescriptionImportStyle.Client; importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties; 我已经能够找到一些基本信息,如方法名称,参数信息,但我需要更深入的分析。 例如,我需要访问Wsdl.exe在代理类中生成的基本上所有信息,但我不想运行Wsdl.exe,只是动态发现信息。 […]

Web服务不使用代理类处理来自同一应用程序的多个同时请求

我有一个应用程序调度多个任务,调用不同的Web服务,一些相同的Web服务,但不同的方法。 每个任务都在一个时间间隔内执行,每个任务都在自己的线程中运行。 为了获得对webservice的引用,我有一个wsdl.exe生成的代理类,它在每个任务中实例化并且总是被处理掉。 但是,在运行应用程序时,任务实际上是在服务请求中等待彼此,Web服务在从任务x完成处理请求之前没有处理来自任务y的服务请求(我可以看到这是因为来自任务x的服务调用可能需要5分钟,任务y 100毫秒,但是如果y在x运行时开始,则在x完成后100毫秒完成)。 这是来自任务的代码(在自己的线程内运行): public class TaskX : TaskWrapper { public TaskX(Guid id, string name, EventQueue eventqueue) : base(id, name, eventqueue) { } protected override void DoTask() { try { var factory = new ServiceReferenceFactory(); using (var reference = factory.GetServiceReference()) { bool result; bool isSpecified; reference.Run(out result, out isSpecified); } } } } […]

从数据库加载没有代理类?

在entity framework4中是否可以选择在没有使用代理类的情况下将某些查询加载到POCO中? (出于缓存该对象的目的,以备将来只读使用)。 我正在使用存储库 – 服务模式。 我的意思是: var order = _orderService.GetById(1); // after order is loaded then we can see in the debugger that: // order.Customer is of type System.Data.Entity.DynamicProxy.Customer_17631AJG_etc 我想要的是order.Customer实际使用POCO类型MyApp.Models.Entities.Customer而不是该类型的代理。 编辑:根据Ladislav建议在存储库中添加“GetUnproxied”方法,我做了这个改动: // this is the current method that must return a DynamicProxy public IQueryable GetQuery() { return ObjectSet.AsQueryable(); } // this is the new […]

来自webservice的日期转换问题

我正在使用Web服务,它将返回响应对象中的datetime字段。 我的reference.cs文件有, private System.DateTime timestampField; public System.DateTime Timestamp { get { return this.timestampField; } set { this.timestampField = value; } } 在SOAP UI中,当我调用该服务时,我看到它正在返回2014-06-09T21:24:56+00:00 00,2014-06-17T05:42:00-04:00 我对不同的值有不同的偏移量.. 但是从我的.NET应用程序,当我调用它转换为其他值时,如6/9/2014 5:24:56 PM但它的实际值应该是6/9/2014 9:24 pm 。 我怎样才能解决这个问题?

手动将ClientBase集合类型从Array 更改为List

我正在使用自己的WCF代理与ClientBase,我想做svc util中的ct属性,并告诉代理返回List 集合类型。 我不能使用List 因为由nhibernate管理的实体所以我必须使用IList 代理不是用svcutil生成的……我把它自己写了。 我怎样才能做到这一点?

我可以停止服务引用生成ArrayOfString而不是string 吗?

我有一个带有这样签名的web方法: public string[] ToUpper(string[] values) 我在Visual Studio 2010中使用“添加服务引用”来生成对我的服务的引用。 不幸的是,这个过程创建了一个名为“ArrayOfString”的代理类,并使用这种类型而不是预期的’string []’类型。 生成的异步服务调用签名最终如下所示: public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values) { } public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values, object userState) { } 我已经尝试了配置服务参考表单中“收集”下拉列表的所有选项,但它似乎并没有什么区别。 这在以前工作,但由于某种原因它可能突然停止工作,可能是从服务中删除另一个Web方法。 如何让生成的服务引用类使用string []类型而不是生成的ArrayOfString类型? 任何有关这方面的帮助将不胜感激。 编辑:正如@Oleg建议的那样,我正在使用ASMX Web服务。

NHibernate获取没有代理的对象

我正在使用NHibernate(2.0.1.4)与NHibernate.Linq(1.0.0.4)从数据库中获取Node类型的对象。 当我得到这些对象时,我得到的集合的最后一个对象是Proxy类型(因为我使用了“NHibernate.ByteCode.LinFu”“) 我使用了以下linq查询: var mynodes = from node in session.Linq() where ancestorNodes.Contains(node.Id) select node).ToList() anchestorNodes是要获取的节点对象的Id列表。 当我在“ancestorNodes”列表中有3个id时,我从查询中得到的结果(mynodes)的最后一个对象是nodeProxy类型。 怎么会这样? 为什么它总是最后一个对象? 我怎么解决这个问题?

如何序列化NHibernate映射对象的所有属性?

我有一些Web方法将我的对象作为序列化XML返回。 它只是序列化对象的NHibernate映射属性……任何人都有一些洞察力? 似乎Web方法实际上是序列化NHibernate代理而不是我的类。 我尝试过使用[XMLInclude]和[XMLElement],但属性仍然没有序列化。 我有一种非常糟糕的hackish方式绕过这个,但我想知道是否有更好的方法! 像这样的东西: public class Graphic { private int m_id; public virtual int Id { get { return m_id; } set { m_id = value; } } private DateTime? m_assigned; public virtual DateTime? Assigned { get { return m_assigned; } set { m_assigned = value; } } private DateTime? m_due; public virtual […]