1 // Copyright 2003-2004 DigitalCraftsmen - http://www.digitalcraftsmen.com.br/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.ManagementExtensions
.Remote
.Server
18 using System
.Collections
;
19 using System
.Collections
.Specialized
;
22 /// Summary description for MConnectorServerFactory.
24 public sealed class MConnectorServerFactory
26 private static ArrayList providers
;
28 private MConnectorServerFactory()
32 public static MConnectorServer
CreateServer(String url
, NameValueCollection properties
, MServer server
)
34 if (providers
== null)
36 providers
= new ArrayList();
38 // TODO: Search for providers instead of hard code it
39 providers
.Add (new Providers
.HttpChannelProvider());
40 providers
.Add (new Providers
.TcpChannelProvider());
43 foreach(MServerProvider provider
in providers
)
45 if (provider
.Accepts(url
))
47 return provider
.CreateServer(url
, properties
, server
);
51 throw new MProviderNotFoundException(url
);