Freigeben über


WCF ServiceHost Custom Config from AppSettings

hi All the code snippet below would create a simple service host loaded from a normal app.config instead of having to understand the complex WCF service configuration

this is how we would initiate the servicehost..

MyFramework.ServiceModel.WCFService<

IHelloWorld, HelloWorldImpl> sh = new WCFService<IHelloWorld, HelloWorldImpl>();

this is how the Servicehost override would look like ..

using

System;

using

System.Collections.Generic;

using

System.ServiceModel;

using

System.ServiceModel.Description;

using

System.Configuration;

using

System.ServiceModel.Channels;

namespace

MYFramework.ServiceModel

{

public class WCFService<InterFaceType, TypeImpl> : ServiceHost

where InterFaceType : class

where TypeImpl : class

{

protected EndpointAddress myEndpoint;

protected Binding myBinding;

public WCFService()

:

base(typeof(TypeImpl))

{

InitializeFromConfig();

}

protected void InitializeFromConfig()

{

//

// Initialize the configuration section.

//

// Create a channel factory.

switch (System.Configuration.ConfigurationManager.AppSettings["binding"] as string)

{

case "NetTcpBinding":

myBinding =

new NetTcpBinding();

break;

case "BasicHttpBinding":

myBinding =

new BasicHttpBinding();

break;

case "WSHttpBinding":

myBinding =

new WSHttpBinding();

break;

default:

myBinding =

new BasicHttpBinding();

break;

}

myEndpoint =

new EndpointAddress(System.Configuration.ConfigurationManager.AppSettings["Url"]);

this.AddServiceEndpoint(typeof(InterFaceType), myBinding, myEndpoint.Uri);

}

}

}