//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Activation { using System.CodeDom.Compiler; using System.Collections; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Web.Compilation; [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Justification = "instantiated from config")] [BuildProviderAppliesTo(BuildProviderAppliesTo.All)] [ServiceActivationBuildProvider] class WorkflowServiceBuildProvider : BuildProvider { internal const string ruleFileExtension = ".rules"; object[] virtualPathDependencies; public override ICollection VirtualPathDependencies { get { if (this.virtualPathDependencies == null) { ArrayList dependencies = new ArrayList(base.VirtualPathDependencies.Count + 1); dependencies.AddRange(base.VirtualPathDependencies); dependencies.Add(Path.ChangeExtension(base.VirtualPath, ruleFileExtension)); this.virtualPathDependencies = dependencies.ToArray(); } return virtualPathDependencies; } } Type ServiceHostFactoryType { get { return typeof(WorkflowServiceHostFactory); } } //CompileStringTemplate : "__VIRTUAL_PATH__|__FACTORY_NAME__|__SERVICE_VALUE__"; public override string GetCustomString(CompilerResults results) { return (base.VirtualPath + "|" + ServiceHostFactoryType.AssemblyQualifiedName + "|" + base.VirtualPath); } public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } } }