You have absolutely no need to do such a thing. We usually expose metadata information about a WCF service through its metadata endpoint. The client can then generate a client proxy class by adding a service reference, and the proxy class can implement calls to the service.
<services>
<service name="WcfService1.Service1">
<endpoint address="" binding="wsHttpBinding" contract="WcfService1.IService1"></endpoint>
<!--metadata service endpoint-->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!--Enable service metadata publish-->
<serviceMetadata/>
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
Client-side.

Optionally, we can also publish service data in the form of HTTP/https, just configure the properties below.
<!--Enable service metadata publish-->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
By which, the client could directly download the WSDL/SingleWSDL file, so that generate the client proxy class manually.

Feel free to let me know if there is anything I can help with.