问题标签 [operationcontract]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WCF REST 服务:我得到 System.Net.Mime.ContentType 是一种类型,但用作变量
我有一个 WCF REST 服务,它必须以其中一种方法提供视频。界面如下所示(我没有提供实现,因为问题出在此处)。
[ContentType]
被识别,但我得到一个System.Net.Mime.ContentType is a type but is used like a variable
.
请帮忙!我不知道该怎么做
c# - OperationContract 的集合返回类型以及如何添加到 DataContracts 列表中?
我有一个业务领域对象(BDO)类:
然后我有一DataContract
堂课:
在我的服务层中,我尝试将BDO转换为 aDataContract
然后返回 this 的 List DataContract
,作为的返回类型OperationContract
:
这是我在服务层中最初的尝试:
如您所见,我尝试将单个添加DataContract
到 a IList<DataContract>
,但是当我这样做时,它会将该列表中的所有其他项目更改为DataContract
具有相同细节的相同项目。
因此,我的问题是,正确的返回类型是什么OperationContract
,如何返回一个DataContract
类的列表以及如何在不更改列表中所有其他项目的数据的情况下添加到该列表中?
c# - 使用 messagecontract 上传文件
我一直在关注各种教程,这些教程解释了如何通过上传文件WCF
,当我尝试MessageContract
在客户端和服务器之间共享包含的类时遇到了一些问题。
基本上我的问题如下:
我RemoteFileInfo
MessageContract
在一个单独的类库中有一个类:
然后我与服务器和客户端共享该库。这应该意味着客户端不应该实现自己的RemoteFileInfo
类。但是,在我将 .dll 添加到我的客户端项目然后使用Add Service Reference
启用Reuse Types
后,它仍然RemoteFileInfo
会在服务引用的命名空间内重新创建类,这会在它本身与我最初在其中声明它的类库中的类型之间产生歧义。
MessageContract
所以我的问题是,如何在客户端和服务器之间共享一个已声明为 a 的类?我需要这样做,因为我OperationContract
需要一个RemoteFileInfo
对象,并且我想保留我在原始RemoteFileInfo
类中声明的相同属性。
我的OperationContract
:
我希望能够在客户端上准确地调用该方法在服务合同中的声明方式。到目前为止,即使我Generate message headers
在添加服务引用时使用该选项,我最终还是得到了一个uploadFile
具有byte[]
参数而不是流的方法,并且我需要它是一个流。
有任何想法吗?
编辑:我打算发布一个客户端配置,但我需要提到我正在为 Windows 应用商店应用程序开发,所以我没有传统的 app.config。
下面是 WCF 测试客户端为客户端配置生成的内容:
我将如何在没有 app.config 的 Windows 商店应用程序中复制它?
wcf - 有什么方法可以隐藏 WCF 肥皂网络服务的 wsdl 中的操作合同标签吗?
例如,如果我有一个作为 GetData() 的操作合同,我不希望它在 wsdl 中,但客户端应该可以使用 Action Attribute 访问该方法,并且可以使用该方法。
wcf - 我可以将 WCF 方法参数从 int 数据类型更改为 long 吗?
假设我在 WCF 服务中有一个现有方法:
事实证明,我需要将其更改为它的参数而不是int。这会破坏现有客户吗?还是发生了一些隐式转换?
c# - 带有 params 数组参数的 WCF 操作合同
我认为这家伙和我有同样的问题,但我需要澄清一下:
无论如何,我正在尝试编写一个 WCF 操作协定,它采用与 String.Format 相同的方式接收字符串,使用 params 对象数组和格式化字符串。这样,我可以这样调用操作:
而不是这样做:
基本上,操作合约方法需要一个字符串,但我只是希望能够以格式化的形式传递字符串以方便。它适用于普通方法,因为我可以显式地创建函数,但是 WCF 提出了我必须首先以接口形式编写它的挑战。另一个人说不是所有的对象都是可序列化的。是否可以这样做?
c# - 在 WCF Rest 端点中使用参数“params string[]”
我想定义一个 OperationContract,我可以传递任意数量的字符串参数。这些值应被解释为字符串数组。是否有可能在 OperationContract 中使用这种类型的参数并在 UriTemplate 中定义它?
c# - 如何确定(在服务器端)WCF 客户端用于连接的合同(多个合同)?
考虑以下:
我有一台主服务器和几台位于不同位置的服务器,它们可以与主服务器通信。此外,(GUI)客户端可以连接到每个服务器。
所以我有一个众所周知的公共接口:
此外,服务器支持回调合约,以便主服务器可以在与其连接的服务器上触发请求。
这意味着服务器有 2 个已实施的合同。因此,当我在主服务器上迭代所有订阅者(在Subscribe
我缓存所有)并为客户端调用回调合约时,它就会超时!OperationContext
我曾预料到某种合同不匹配。除了操作超时之外的任何东西(并且立即!)?!?
我还试图找出客户端用于连接的合同名称(OperationContext.Current
)。但这也没有成功。它IServerService
在这两种情况下都说OperationContext.Current.EndpointDispatcher.ContractName
。
服务器端是否有可能OperationContract
确定客户端在连接时使用了哪个?
当然,我可以通过一种方法扩展服务器接口,SubscribeServer
但这对我来说似乎相当难看。
编辑:
正如建议的那样,我确实实施了一个MessageInspector
. 但是在AfterReceiveRequest
IClientChannel中可以成功投到ICallback
更奇怪的是调用堆栈已经包含ReliableDuplexSessionChannel
:
这是否意味着如果我的服务类实现了IServerService
定义了回调合同的服务类,那么所有连接的客户端都通过双工代理进行路由?无论客户使用(或实施)的合同如何?
c# - 有没有办法为继承接口的方法添加属性?
有多种技术实现的通用服务接口。
例如,我有 2 个接口:
- 通用服务
- 从 IGenralService 继承的 IWcfService。
基础接口:
和 wcf 服务:
IWcfService 特定于 Wcf,需要 wcf 方法的“OperationContract”属性。“登录”方法不包括属性“OperationContract”。
有没有办法为固有方法添加属性?
c# - 使用 datacontract 上传图像以及 wcf 服务的用户 ID
我想使用 post、datacontract 将图像从 javascript 上传到 wcf 服务。我在谷歌上读到,使用数据契约是不可能的,它可以用消息契约来完成,因为当一个参数是流时,它不应该有任何其他参数。
但是在某些链接中提到可以通过在 querystring 中传递参数来完成。(例如:具有多平台支持的 WCF Restful 服务文件上传)我试过了,仍然收到错误说如果流作为参数存在,它不应该包含任何其他参数。但即使使用查询字符串也不可能吗?以下是我的代码