private DataContractProxy GetContract(TypeProxy type) { if (type.IsClass || type.IsValueType || type.IsEnum) { DataContractProxy contract = null; if (!_typeContracts.TryGetValue(type, out contract)) { contract = type.GetDataContract(); _typeContracts.Add(type, contract); } return(contract); } return(null); }