public Create ( string uriScheme, List |
||
uriScheme | string | The URI scheme. |
descriptions | List |
The descriptions. |
configuration | The configuration. | |
리턴 | System.ServiceModel.Channels.Binding |
public virtual Binding Create(
string uriScheme,
List<EndpointDescription> descriptions,
EndpointConfiguration configuration)
{
if (uriScheme == null) throw new ArgumentNullException("uriScheme");
Type bindingType = null;
if (!m_bindings.TryGetValue(uriScheme, out bindingType))
{
throw ServiceResultException.Create(StatusCodes.BadInvalidArgument, "Could not find binding type for scheme: '{0}'.", uriScheme);
}
try
{
return (Binding)Activator.CreateInstance(bindingType, m_namespaceUris, m_factory, configuration, descriptions.ToArray());
}
catch (Exception e)
{
throw ServiceResultException.Create(StatusCodes.BadInvalidArgument, e, "An session binding for type '{0}' could not be created from the EndpointDescription and the EndpointConfiguration.", bindingType.FullName);
}
}
BindingFactory::Create ( string uriScheme, |
|
BindingFactory::Create ( string uriScheme, |
|
BindingFactory::Create ( ApplicationConfiguration configuration ) : |
|
BindingFactory::Create ( ApplicationConfiguration configuration, |
/// <summary> /// Adds the discovery url to the hosts. /// </summary> /// <param name="configuration">The configuration.</param> /// <param name="discoveryUrls">The discovery urls.</param> public virtual void InitializeDiscovery( ApplicationConfiguration configuration, StringCollection discoveryUrls) { // create the binding factory. BindingFactory bindingFactory = BindingFactory.Create(configuration, configuration.CreateMessageContext()); EndpointConfiguration endpointConfiguration = EndpointConfiguration.Create(configuration); foreach (string discoveryUrl in discoveryUrls) { // parse discovery url. Uri url = Utils.ParseUri(discoveryUrl); if (url == null) { continue; } // create endpoint. if (url.PathAndQuery.EndsWith("/discovery")) { Binding binding = bindingFactory.Create(url.Scheme, endpointConfiguration); this.AddServiceEndpoint(typeof(IDiscoveryEndpoint), binding, url, url); } } }