在代码中向端点行为添加行为扩展

发布于 2024-12-05 06:28:41 字数 751 浏览 0 评论 0原文

我在 web.config 中添加行为扩展:

<extensions>
        <behaviorExtensions>
            <add name="WebAppBeaviourElement" type="WebApp.Extensions.CustomBehaviorExtensionElement, WebApp.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </behaviorExtensions>
    </extensions>

    <behaviors>
        <endpointBehaviors>
            <behavior name="WebAppBeaviour">
                <WebAppBeaviourElement />
            </behavior>
        </endpointBehaviors>
    </behaviors>

但在 Visual Studio 2010 中存在错误 - WebAppBehaviourElement 在 Visual Studio 中不可见并出现错误:/

所以我认为可以将此扩展添加到代码中的 endpointBehaviours 中?什么时候在代码中我应该这样做?

I add behavior extension in web.config:

<extensions>
        <behaviorExtensions>
            <add name="WebAppBeaviourElement" type="WebApp.Extensions.CustomBehaviorExtensionElement, WebApp.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </behaviorExtensions>
    </extensions>

    <behaviors>
        <endpointBehaviors>
            <behavior name="WebAppBeaviour">
                <WebAppBeaviourElement />
            </behavior>
        </endpointBehaviors>
    </behaviors>

But in Visual Studio 2010 is bug - WebAppBehaviourElement is not visible by visual studio and get error:/

So I think that it is possible to add this extension to endpointBehaviours in code ? And when in code I should do it?

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

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

发布评论

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

评论(2

感受沵的脚步 2024-12-12 06:28:41

您可以扩展主机工厂

public class ExtendedHostFactory : WebServiceHostFactory

然后,向主机添加行为

protected override ServiceHost CreateServiceHost(System.Type serviceType, System.Uri[] baseAddresses)
  {
    ServiceHost host = base.CreateServiceHost(serviceType, baseAddresses) as WebServiceHost;
    host.Description.Behaviors.Add(new ValidateApiKey()); // ValidateApiKey is an IServiceBehavior
  }

您可以在 config.xml 中添加主机。如果您也为此选择代码,请将其添加到 global.asax 中,如下所示

ExtendedHostFactory factory = new ExtendedHostFactory();
RouteTable.Routes.Add(new ServiceRoute(@"myservice/path", factory, typeof(MyService)));

You can extend the host factory

public class ExtendedHostFactory : WebServiceHostFactory

Then, add behavior to the host

protected override ServiceHost CreateServiceHost(System.Type serviceType, System.Uri[] baseAddresses)
  {
    ServiceHost host = base.CreateServiceHost(serviceType, baseAddresses) as WebServiceHost;
    host.Description.Behaviors.Add(new ValidateApiKey()); // ValidateApiKey is an IServiceBehavior
  }

You can add the host in config. If you choose code for that too, add it in global.asax as below

ExtendedHostFactory factory = new ExtendedHostFactory();
RouteTable.Routes.Add(new ServiceRoute(@"myservice/path", factory, typeof(MyService)));
与风相奔跑 2024-12-12 06:28:41

Visual Studio 2010 根据 XSD 架构验证配置文件。
其中一个是在这里定义的 system.serviceModel没有您的自定义行为,但程​​序可以工作。

Visual Studio 2010 validate configuration file against XSD schemas.
One is defined for here system.serviceModel There is no yours custom behavior, but programms work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文