public List<DependencyRecording> GetDependencies() { var dependencies = new List<DependencyRecording>(); foreach(var dependencyNode in CurrentRecording.XPathSelectElements("//Dependency")) { var dependency = new DependencyRecording(); dependency.TypeName = dependencyNode.Element("Type").Value; dependency.CalledOnType = Type.GetType(dependencyNode.Element("FullyQualifiedType").Value); dependency.IsStatic = Convert.ToBoolean(dependencyNode.XPathSelectElement("Method/IsStatic").Value); string methodName = dependencyNode.XPathSelectElement("Method/Name").Value; var methodParameters = new List<Type>(); foreach (var parameterNode in dependencyNode.XPathSelectElements("Method/Parameters//FullyQualifiedType")) { if (!string.IsNullOrEmpty(parameterNode.Value)) { methodParameters.Add(Type.GetType(parameterNode.Value)); } } foreach(var returnNode in dependencyNode.XPathSelectElements("Method//ReturnValue")) { Type returnType = Type.GetType(returnNode.Element("FullyQualifiedType").Value); object returnValue = returnNode.Element("Value").Value.Deserialize(returnType); dependency.AddReturnValue(returnValue); } dependency.Method = dependency.CalledOnType.GetMethod(methodName, methodParameters.ToArray()); dependencies.Add(dependency); } return dependencies; }
public List <DependencyRecording> GetDependencies() { var dependencies = new List <DependencyRecording>(); foreach (var dependencyNode in CurrentRecording.XPathSelectElements("//Dependency")) { var dependency = new DependencyRecording(); dependency.TypeName = dependencyNode.Element("Type").Value; dependency.CalledOnType = Type.GetType(dependencyNode.Element("FullyQualifiedType").Value); dependency.IsStatic = Convert.ToBoolean(dependencyNode.XPathSelectElement("Method/IsStatic").Value); string methodName = dependencyNode.XPathSelectElement("Method/Name").Value; var methodParameters = new List <Type>(); foreach (var parameterNode in dependencyNode.XPathSelectElements("Method/Parameters//FullyQualifiedType")) { if (!string.IsNullOrEmpty(parameterNode.Value)) { methodParameters.Add(Type.GetType(parameterNode.Value)); } } foreach (var returnNode in dependencyNode.XPathSelectElements("Method//ReturnValue")) { Type returnType = Type.GetType(returnNode.Element("FullyQualifiedType").Value); object returnValue = returnNode.Element("Value").Value.Deserialize(returnType); dependency.AddReturnValue(returnValue); } dependency.Method = dependency.CalledOnType.GetMethod(methodName, methodParameters.ToArray()); dependencies.Add(dependency); } return(dependencies); }
public void AddDependency(object dependencyInstance, MethodInfo method, object returnValue) { var recording = (from r in DependencyRecordings where r.Method == method select r).SingleOrDefault(); if (recording == null) { recording = new DependencyRecording(dependencyInstance, method); DependencyRecordings.Add(recording); } recording.AddReturnValue(returnValue); }
public void AddDependency(object dependencyInstance, MethodInfo method, object returnValue) { var recording = (from r in DependencyRecordings where r.Method == method select r).SingleOrDefault(); if (recording == null) { recording = new DependencyRecording(dependencyInstance, method); DependencyRecordings.Add(recording); } recording.AddReturnValue(returnValue); }