C# 如何以编程方式编写终结点(netPeerTcpBinding)

C# 如何以编程方式编写终结点(netPeerTcpBinding),c#,wpf,wcf,app-config,endpoint,C#,Wpf,Wcf,App Config,Endpoint,我需要用c#编程编写这个end proint,这是一个聊天应用程序 app.config部分 这对我来说很好。但是,我需要动态更改端点地址。正在寻找有价值的支持。使用端点选择逻辑编写您自己的ChanelFactory 或者只需使用DuplexChanelFactory的另一个构造函数,该构造函数接受EndPointAddress对象,您可以在代码中使用所有必要的参数创建该对象 使用端点选择逻辑编写您自己的ChanelFactory 或者只需使用DuplexChanelFactory的另一个构

我需要用c#编程编写这个end proint,这是一个聊天应用程序

app.config部分
这对我来说很好。但是,我需要动态更改端点地址。正在寻找有价值的支持。

使用端点选择逻辑编写您自己的ChanelFactory

或者只需使用DuplexChanelFactory的另一个构造函数,该构造函数接受EndPointAddress对象,您可以在代码中使用所有必要的参数创建该对象


使用端点选择逻辑编写您自己的ChanelFactory

或者只需使用DuplexChanelFactory的另一个构造函数,该构造函数接受EndPointAddress对象,您可以在代码中使用所有必要的参数创建该对象


我试过了,但这里我需要使用DuplexChannelFactory。当我配置它时,它有一些参数,比如ServiceEndpoint或binding和RemoteAddress。你能检查一下上面的配置吗?你有什么配置吗solution@user2972244DuplexChannelFactory有许多构造函数:。您使用一个在配置文件中采用端点名称的端点。与此相反,您必须使用所需的ip手动创建EndPointAddress对象,并将其路径设置为另一个构造函数。然后你可以写任何你想知道ip或其他端点地址设置的逻辑。我有一个p2p的端点,我可以写。但实际工作是基于tcp bing的。我怎么能把它包括进去binding@user2972244您可以从配置文件加载它,也可以通过编程方式进行。在我的项目中,我们硬编码了行为和绑定,因为98%的时间没有人在配置中更改它。这只是我尝试过的安装困难,但这里我需要使用DuplexChannelFactory。当我配置它时,它有一些参数,比如ServiceEndpoint或binding和RemoteAddress。你能检查一下上面的配置吗?你有什么配置吗solution@user2972244DuplexChannelFactory有许多构造函数:。您使用一个在配置文件中采用端点名称的端点。与此相反,您必须使用所需的ip手动创建EndPointAddress对象,并将其路径设置为另一个构造函数。然后你可以写任何你想知道ip或其他端点地址设置的逻辑。我有一个p2p的端点,我可以写。但实际工作是基于tcp bing的。我怎么能把它包括进去binding@user2972244您可以从配置文件加载它,也可以通过编程方式进行。在我的项目中,我们硬编码了行为和绑定,因为98%的时间没有人在配置中更改它。这只是安装上的困难现在你知道真相了吗?现在你知道真相了吗?
 <system.serviceModel>
        <client>
          <endpoint name="ChatEndPoint" address="net.p2p://chatMesh/ChatServer" binding="netPeerTcpBinding" bindingConfiguration="PeerTcpConfig" contract="Test.IChatService"></endpoint>
        </client>
        <bindings>
          <netPeerTcpBinding>
            <binding name="PeerTcpConfig" port="0">
              <security mode="None"></security>
              <resolver mode="Custom">
                <custom address="net.tcp://192.168.0.147:22222/ChatServer" binding="netTcpBinding" bindingConfiguration="TcpConfig"></custom>
              </resolver>
            </binding>
            <!--<binding name="BindingDefault" port="0">
              <security mode="None"></security>
              <resolver mode="Auto"></resolver>
            </binding>-->
          </netPeerTcpBinding>
          <netTcpBinding>
            <binding name="TcpConfig">
              <security mode="None"></security>
            </binding>
          </netTcpBinding>
        </bindings>
      </system.serviceModel>
 InstanceContext context = new InstanceContext(
                        new Home(txtUserName.Text.Trim()));
                    factory =
                        new DuplexChannelFactory<IChatChannel>(context, "ChatEndPoint");
                    channel = factory.CreateChannel();