예제 #1
0
        public static InterfaceMapper Create(XmlNode section)
        {
            if (section == null)
            {
                return(null);
            }
            InterfaceMapper mapper     = new InterfaceMapper();
            var             implements = section.SelectNodes("implement");

            foreach (XmlNode implement in implements)
            {
                string contractTypeName = section.GetAttributeValue("contractType");
                ArgumentAssert.IsNotNull(contractTypeName, "contractTypeName");
                Type contractType = Type.GetType(contractTypeName);
                if (contractType == null)
                {
                    throw new NoTypeDefinedException(contractTypeName);
                }

                var imp = InterfaceImplementer.Create(implement);
                if (imp != null)
                {
                    mapper.AddImplement(contractType, imp);
                }
            }
            return(mapper);
        }
        public static InterfaceMapper ParseInterfaceMapper(XmlNode section)
        {
            if (section == null)
            {
                return(null);
            }
            InterfaceMapper mapper     = new InterfaceMapper();
            var             implements = section.SelectNodes("implement");

            foreach (XmlNode impNode in implements)
            {
                string contractTypeName = section.Attributes["contractType"].Value;
                Type   contractType     = Type.GetType(contractTypeName);
                if (contractType == null)
                {
                    throw new NoTypeDefinedException(contractTypeName);
                }

                var imp = ParseInterfaceImplement(impNode);
                if (imp != null)
                {
                    mapper.AddImplement(contractType, imp);
                }
            }
            return(mapper);
        }