<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2020 New Relic Corporation. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
<extension xmlns="urn:newrelic-extension">
	<instrumentation>

		<tracerFactory name="WcfIgnoreOuterTransactionWrapper">
			<!-- WCF 4 -->
			<match assemblyName="System.ServiceModel.Activation" className="System.ServiceModel.Activation.HostedHttpRequestAsyncResult">
				<exactMethodMatcher methodName=".ctor" parameters="System.Web.HttpApplication,System.String,System.Boolean,System.Boolean,System.AsyncCallback,System.Object" />
			</match>
			<!-- WCF 3 -->
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Activation.HostedHttpRequestAsyncResult">
				<exactMethodMatcher methodName=".ctor" parameters="System.Web.HttpApplication,System.Boolean,System.AsyncCallback,System.Object" />
			</match>
		</tracerFactory>

		<tracerFactory name="ServiceChannelProxyWrapper">
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Channels.ServiceChannelProxy">
				<exactMethodMatcher methodName="Invoke" />
			</match>
		</tracerFactory>

		<tracerFactory name="ChannelFactoryWrapper">
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.ChannelFactory">
				<exactMethodMatcher methodName="InitializeEndpoint" />
			</match>
		</tracerFactory>

		<tracerFactory name="MethodInvokerWrapper">
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Dispatcher.SyncMethodInvoker">
				<exactMethodMatcher methodName="Invoke" />
			</match>
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Dispatcher.AsyncMethodInvoker">
				<exactMethodMatcher methodName="InvokeBegin" />
			</match>
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Dispatcher.AsyncMethodInvoker">
				<exactMethodMatcher methodName="InvokeEnd" />
			</match>
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Dispatcher.TaskMethodInvoker">
				<exactMethodMatcher methodName="InvokeAsync" />
			</match>
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Dispatcher.TaskMethodInvoker">
				<exactMethodMatcher methodName="InvokeEnd" />
			</match>
		</tracerFactory>

		<tracerFactory name="DispatchBuilderWrapper">
			<match assemblyName="System.ServiceModel" className="System.ServiceModel.Description.DispatcherBuilder">
				<exactMethodMatcher methodName="InitializeServiceHost" parameters="System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase" />
			</match>
		</tracerFactory>

	</instrumentation>
</extension>
