public virtual IEnumerable <ApiExtensionMethod> ReadApiExtensions(XmlNode rootElement) { if (rootElement == null) { throw new DeserialisationException("Could not find API Extension element"); } CheckVersion(rootElement); string fullTypeName = rootElement.Attributes["type"].Value; Type extendedType = GetTypeNamed(fullTypeName); if (extendedType == null) { throw new DeserialisationException(string.Format("Cannot find the type named {0}, have you loaded all referenced assemblies?", fullTypeName)); } var extensionNodes = rootElement.SelectNodes("ApiExtension"); if (extensionNodes == null) { return(new ApiExtensionMethod[0]); } List <ApiExtensionMethod> extensionMethods = new List <ApiExtensionMethod>(); foreach (XmlNode extensionNode in extensionNodes) { ApiExtensionMethod extMethod = ReadApiExtension(extensionNode, extendedType); extensionMethods.Add(extMethod); } return(extensionMethods); }
private void SetPanelToMethod(MethodInfo info) { SaveCurrentFunctionInfo(); Utility.SuspendPainting(panelContent); ClearPanel(); // Try find Api Extension in the current project if (Project.Instance.TryGetApiExtensionFor(info, out currentExtentionMethod) == false) { currentExtentionMethod = new ApiExtensionMethod(info); currentExtentionMethod.DefaultCode = Project.Instance.GetDefaultFunctionBodyFor(info); } functionScreen.CurrentFunction = currentExtentionMethod.FunctionInfo; functionScreen.AllowOverride = true; functionScreen.OverrideFunctionChecked = currentExtentionMethod.HasOverride; functionScreen.Populate(); panelContent.Visible = true; Utility.ResumePainting(panelContent); formUserOptionDetails.Visible = false; }
public void SetUp() { fileController = MockRepository.GenerateMock <IFileController>(); fileController.Stub(f => f.DirectoryExists("Folder")).Return(true); fileController.Stub(f => f.CanCreateFilesIn("Folder")).Return(true); ExtensionMethod = new ApiExtensionMethod(typeof(ApiExtensionTest).GetMethod("Method1")); }
protected virtual ApiExtensionMethod ReadApiExtension(XmlNode extensionNode, Type extendedType) { NodeProcessor proc = new NodeProcessor(extensionNode); var methodName = proc.GetString("MethodName"); MethodInfo method = extendedType.GetMethod(methodName); if (method == null) { throw new DeserialisationException(string.Format("Cannot find method named {0} on type {1}", methodName, extendedType.FullName)); } string overrideText = proc.GetString("OverrideFunctionText"); ApiExtensionMethod extMethod = new ApiExtensionMethod(method); extMethod.OverridingFunctionBody = overrideText; return(extMethod); }
public void SetUp() { fileController = MockRepository.GenerateMock <IFileController>(); ExtensionMethod = new ApiExtensionMethod(typeof(ApiExtensionTest).GetMethod("Method1")); ExtensionMethod.OverridingFunctionBody = "return \"<>\";"; // Testing XML Escaping }
private void ClearPanel() { panelContent.Visible = false; currentExtentionMethod = null; }