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;
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }