1.HTML <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WCFTool.aspx.cs" Inherits="HraWeb.工具页面.WCFTool" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <label>请输入接口(包含程序集):</label> <asp:TextBox ID="txt_Interface_" runat="server" Width="500"></asp:TextBox> <br /> <label>请输入类(包含程序集):</label> <asp:TextBox ID="txt_Class_" runat="server" Width="500"></asp:TextBox> <br /> <label>请输入ip:</label> <br /> <asp:TextBox ID="txt_Ip_" runat="server"></asp:TextBox> <label>请输入端口:</label> <asp:TextBox ID="txt_Port_" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="生成wcf配置" OnClick="Button1_Click" /> <br /> <label>WCFEndPointProxy:</label> <br /> <asp:TextBox ID="txt_WCFEndPointProxy_" runat="server" TextMode="MultiLine" Height="200" Width="1200"></asp:TextBox> <p></p> <label>ClientEndPoint:</label> <p></p> <asp:TextBox ID="txt_ClientEndPoint_" runat="server" TextMode="MultiLine" Width="1200" Height="100" ></asp:TextBox> <p></p> <label>BLL.xml</label> <br /> <asp:TextBox ID="txt_BLL_" runat="server" TextMode="MultiLine" Height="100" Width="1200"></asp:TextBox> <p></p> <label>ServiceEndPoint:</label> <p></p> <asp:TextBox ID="txt_ServiceEndPoint_" runat="server" TextMode="MultiLine" Height="100" Width="1200"></asp:TextBox> <p></p> <label>SVC:</label> <br /> <asp:TextBox ID="txt_SVC_" runat="server" TextMode="MultiLine" Width="1200" Height="100"></asp:TextBox> <br /> <label>proxyclass:</label> <br /> <asp:TextBox ID="txt_ProxyClass_" runat="server" TextMode="MultiLine" Width="1200" Height="200"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Width="1200" Height="200" ></asp:TextBox> </div> </form> </body> </html> 2..CS using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace HraWeb.工具页面 { public partial class WCFTool : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string ip = txt_Ip_.Text.Trim(); string port = txt_Port_.Text.Trim(); string FullName = txt_Class_.Text.Split(',')[0].Trim(); string className = FullName.Split('.')[FullName.Split('.').Length - 1].Trim(); string classAssembly = txt_Class_.Text.Split(',')[1].Trim(); string interfaceName = txt_Interface_.Text.Split(',')[0].Trim(); string iterfaceClassName = interfaceName.Split('.')[interfaceName.Split('.').Length - 1]; string interfaceAssembly = txt_Interface_.Text.Split(',')[1].Trim(); txt_WCFEndPointProxy_.Text = $@" <object id=""{className}Proxy_{ip}_{port}"" type = ""{interfaceName},{interfaceAssembly}"" factory-object = ""{className}ChannelFactory_{ip}_{port}"" factory-method = ""CreateChannel"" singleton =""false""/> <!--工厂--> <object id = ""{className}ChannelFactory_{ip}_{port}"" type = ""System.ServiceModel.ChannelFactory<{interfaceName}>, System.ServiceModel""> <constructor-arg name = ""endpointConfigurationName"" value = ""{className}_IContract_{ip}_{port}""/> </object>"; txt_ClientEndPoint_.Text = $@" <endpoint address = ""http://{txt_Ip_.Text.Trim()}:{txt_Port_.Text.Trim()}/SVC/{className}.svc"" binding = ""wsHttpBinding"" bindingConfiguration = ""bindCfg_http"" contract = ""{interfaceName}"" name = ""{className}_IContract_{ip}_{port}""/>"; txt_BLL_.Text = $@"<object id = ""{className}"" type = ""{FullName}, {classAssembly}"" > < property name = ""Dao"" ref= ""CommonService"" /> </object>"; txt_ServiceEndPoint_.Text = $@" <service name=""{className}"" behaviorConfiguration = ""ServiceBehavior_DIC""> <endpoint address = """" contract = ""{interfaceName}"" binding = ""wsHttpBinding"" bindingConfiguration = ""bindCfg_http""/> </service>"; txt_SVC_.Text = $@"<%@ ServiceHost Language =""C#"" Debug = ""true"" Service = ""{className}"" Factory = ""Spring.ServiceModel.Activation.ServiceHostFactory""%>"; txt_ProxyClass_.Text = $@"public class {className}Proxy : ServiceProxyBase<{iterfaceClassName}> {{ public override string ServieName {{ get {{ return ""{className}""; }} }} }}"; TextBox2.Text = $@" 服务类请加上:[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(IncludeExceptionDetailInFaults = true)] 接口契约请加上[ServiceContract] 接口方法[OperationContract]; "; } } }