WCF 的Endpoints Configuration如果存在数据库表的某个字段而非配置文件,类型为string或xml。如果创建ServerHost?谢谢指教。
解决方案 »
- C#怎麼再獲取記事本名稱后去掉.txt?并再選擇的時候只選擇.txt格式呢?
- winform 离开窗体
- 做一个算法, 能够将一个浮点数转换成整数. (不得使用.net中现成的算法, 或各数据类型的Parse方法)
- 怎么到把别人网站上的图片下载下到本地
- 怎么引用mshtml?
- 请解释下红色字体是什么意思 谢谢
- pictureBox中的图片移动界限问题
- 返回后页面的字体为什么变大了?
- wpf datagrid 有没有改变列宽时触发的事件?
- 各位,问一个问题,我在安装VS.NET的时候,没有安装IIS,等到VS.NET安装好了,才安装IIS,这样就造成了IIS无法打开ASPX页面,现在有什吗
- 用C#如何统计用户在线时间?
- 100分求个界面
例如:
public CustomServiceHost(Uri uri, string configData){this.InitConfig(configData);this.InitializeDescription(new UriSchemeKeyedCollection(new Uri[] { uri }));
}private void InitConfig(string configData){this._config = ConfigHelper.GetConfig(configData);ValidateConfig(configData);}private void ValidateConfig(string configData){//TODO:}System.Configuration.Configuration _config;public System.Configuration.Configuration Config{get { return _config; }set { _config = value; }}protected override System.ServiceModel.Description.ServiceDescription CreateDescription(out IDictionary<string, System.ServiceModel.Description.ContractDescription> implementedContracts){Dictionary<string, ContractDescription> contracts = new Dictionary<string, ContractDescription>();List<ServiceEndpoint> endpoints = new List<ServiceEndpoint>(); Configuration c = this.Config; ServicesSection ss = c.GetSection("system.serviceModel/services") as ServicesSection;ServiceElement service = ss.Services[0];ServiceEndpointElement epe = service.Endpoints[0];
ContractDescription cd = ContractDescription.GetContract(ContractType(epe.Contract));contracts.Add(cd.Name, cd);foreach (OperationDescription od in cd.Operations)od.Behaviors.Add(new AdapterOperationBehavior());Binding b = GetBinding(epe.Binding);EndpointAddress ea = new EndpointAddress(epe.Address);ServiceEndpoint ep = new ServiceEndpoint(cd, b, ea);endpoints.Add(ep);ServiceDescription sd = new ServiceDescription(endpoints);
ServiceBehaviorAttribute sb = new ServiceBehaviorAttribute();sb.SetWellKnownSingleton(this);sb.InstanceContextMode = InstanceContextMode.Single;sd.Behaviors.Add(sb);//add behaviors ServiceMetadataBehavior smb = new ServiceMetadataBehavior();smb.HttpGetEnabled = true;sd.Behaviors.Add(smb);implementedContracts = contracts;return sd;}private Binding GetBinding(string name){BindingsSection bindings = this.Config.GetSection("system.serviceModel/bindings") as BindingsSection;BindingCollectionElement bc = bindings[name];Binding b = Activator.CreateInstance(bc.BindingType) as Binding;return b;}Type ContractType(string type){Type t = null;t = Type.GetType(type);return t;}