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); }