private IEnumerable <IBackendServiceLocation> BuildServiceLocationCache(string fileName)
        {
            XDocument doc = XDocument.Load(fileName);

            doc.ValidateXml(Properties.Resources.BackendServiceLocationSchema);
            foreach (XElement service in doc.Root.Elements("service"))
            {
                BackendServiceLocation item = new BackendServiceLocation();
                item.ContractType = Type.GetType(service.Attribute("contract").Value);
                item.ServiceType  = Type.GetType(service.Attribute("service").Value);
                item.Binding      = (SupportedBinding)Enum.Parse(typeof(SupportedBinding), service.TryGetAttributeValue("binding", SupportedBinding.NetTcp.ToString()), false);
                yield return(item);
            }
        }
Пример #2
0
        private static IEnumerable <IBackendServiceLocation> BuildServiceLocationCache()
        {
            string fileName = ServiceFactory.BackendConfigurator.Get(ConfigKeyServiceLocation);

            fileName = Path.Combine(Utilities.GetWorkingDirectory(), fileName);

            if (!File.Exists(fileName))
            {
                throw new FileNotFoundException(Properties.Resources.ServiceLocationFileNotPresent, fileName);
            }

            XDocument doc = XDocument.Load(fileName);

            doc.ValidateXml(Properties.Resources.BackendServiceLocationSchema);
            foreach (XElement service in doc.Root.Elements("service"))
            {
                BackendServiceLocation item = new BackendServiceLocation();
                item.ContractType = Type.GetType(service.Attribute("contract").Value);
                item.ServiceType  = Type.GetType(service.Attribute("service").Value);
                item.Binding      = (SupportedBinding)Enum.Parse(typeof(SupportedBinding), service.TryGetAttributeValue("binding", SupportedBinding.NetTcp.ToString()), false);
                yield return(item);
            }
        }