WCF TOOL CODE

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&lt;{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];     
            ";
    }
    }
}

 

posted on 2018-01-03 16:16  听哥哥的话  阅读(208)  评论(0编辑  收藏  举报

导航