我的基础 WCF 服务中的初始化属性

发布于 2024-10-09 19:57:43 字数 278 浏览 5 评论 0原文

我已经设置了一些 WCF 服务,用于从 javascript 调用以启用 ajax 调用,例如检索 JSON 格式的数据。

我的所有服务都在 web.config 等中配置,并且我用 c# 编写代码。

我的所有服务都继承自 BaseService 对象,该对象具有一些在所有服务之间共享的通用属性,例如记录器对象、配置对象等。

我的问题是,如何/在哪里可以为这些属性设置/赋值? IE。使用我创建的自定义记录器的即时设置基本服务记录器属性。如果我的问题含糊不清,我深表歉意,但任何帮助都会很棒。

I have set up some WCF services that I use to call from javascript to enable ajax calls such as retrieving data in JSON format.

All my services are configured in a web.config etc and I code in c#.

All my services inherit from a BaseService object which has some common properties that are share between all services, for example a logger object, configuration object etc.

My question is, how/where I can set up/assign values to these properties? ie. set up the base service logger property with an instant of a custom logger I created. Apologies if my question is vague but any help would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疾风者 2024-10-16 19:57:43

无法从客户端(任何类型)设置服务实现对象的属性,因为只有合约对客户端可见。此外,诸如配置和记录器之类的属性无论如何都不是合同的一部分,而是服务实现的一部分 - 因此它们必须在服务器端自动为每个服务对象设置(即通过应用程序基础设施)。您有多种选择:

  1. 使用构造函数(BaseService 或实际服务类的构造函数)来初始化这些属性。
  2. 使用 IoC/DependencyInjection 容器(例如,UnityStructureMap)

Properties for Service implementation object cannot be set from client (any kind) because only contract is visible to client. Further, properties such as config and logger are anyway not meant to be part of contract but rather service implementation - so they must get set at server side automatically(i.e. by application infrastructure) for each service object. You have a couple of choices:

  1. Use constructor (either that of BaseService or actual service class) to initialize these properties.
  2. Use IoC/DependencyInjection container (for example, Unity, StructureMap)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文