Browse Source

Fixed CodeDOM output bug which prevented the forms desinger from working.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@268 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mike Krüger 20 years ago
parent
commit
1738db8864
  1. 4
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerLoader/NRefactoryDesignerLoader.cs
  2. 63
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Services/TypeResolutionService.cs
  3. 4
      src/Libraries/NRefactory/Project/Src/Output/CodeDOM/CodeDOMOutputVisitor.cs

4
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerLoader/NRefactoryDesignerLoader.cs

@ -101,8 +101,8 @@ namespace ICSharpCode.FormDesigner
CodeDOMVisitor visitor = new CodeDOMVisitor(); CodeDOMVisitor visitor = new CodeDOMVisitor();
visitor.Visit(p.CompilationUnit, null); visitor.Visit(p.CompilationUnit, null);
// // output generated CodeDOM to the console : // output generated CodeDOM to the console :
// provider.GenerateCodeFromCompileUnit(visitor.codeCompileUnit, Console.Out, null); provider.GenerateCodeFromCompileUnit(visitor.codeCompileUnit, Console.Out, null);
return visitor.codeCompileUnit; return visitor.codeCompileUnit;
} }

63
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Services/TypeResolutionService.cs

@ -52,41 +52,46 @@ namespace ICSharpCode.FormDesigner.Services
if (name == null || name.Length == 0) { if (name == null || name.Length == 0) {
return null; return null;
} }
Assembly lastAssembly = null; try {
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) { Assembly lastAssembly = null;
Type t = asm.GetType(name, throwOnError); foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) {
if (t != null) { Type t = asm.GetType(name, throwOnError);
lastAssembly = asm; if (t != null) {
lastAssembly = asm;
}
}
if (lastAssembly != null) {
return lastAssembly.GetType(name, throwOnError, ignoreCase);
} }
}
if (lastAssembly != null) {
return lastAssembly.GetType(name, throwOnError, ignoreCase);
}
Type type = Type.GetType(name, throwOnError, ignoreCase); Type type = Type.GetType(name, throwOnError, ignoreCase);
// type lookup for typename, assembly, xyz style lookups // type lookup for typename, assembly, xyz style lookups
if (type == null) { if (type == null) {
int idx = name.IndexOf(","); int idx = name.IndexOf(",");
if (idx > 0) { if (idx > 0) {
string[] splitName = name.Split(','); string[] splitName = name.Split(',');
string typeName = splitName[0]; string typeName = splitName[0];
string assemblyName = splitName[1].Substring(1); string assemblyName = splitName[1].Substring(1);
Assembly assembly = null; Assembly assembly = null;
try { try {
assembly = Assembly.Load(assemblyName); assembly = Assembly.Load(assemblyName);
} catch (Exception e) { } catch (Exception e) {
Console.WriteLine(e); Console.WriteLine(e);
} }
if (assembly != null) { if (assembly != null) {
type = assembly.GetType(typeName, throwOnError, ignoreCase); type = assembly.GetType(typeName, throwOnError, ignoreCase);
} else { } else {
type = Type.GetType(typeName, throwOnError, ignoreCase); type = Type.GetType(typeName, throwOnError, ignoreCase);
}
} }
} }
}
return type; return type;
} catch (Exception e) {
Console.WriteLine(e);
}
return null;
} }
public void ReferenceAssembly(AssemblyName name) public void ReferenceAssembly(AssemblyName name)

4
src/Libraries/NRefactory/Project/Src/Output/CodeDOM/CodeDOMOutputVisitor.cs

@ -206,8 +206,8 @@ namespace ICSharpCode.NRefactory.Parser
codeTypeDeclaration.IsStruct = typeDeclaration.Type == Types.Struct; codeTypeDeclaration.IsStruct = typeDeclaration.Type == Types.Struct;
if (typeDeclaration.BaseTypes != null) { if (typeDeclaration.BaseTypes != null) {
foreach (object o in typeDeclaration.BaseTypes) { foreach (TypeReference typeRef in typeDeclaration.BaseTypes) {
codeTypeDeclaration.BaseTypes.Add(new CodeTypeReference(o.ToString())); codeTypeDeclaration.BaseTypes.Add(new CodeTypeReference(typeRef.Type));
} }
} }

Loading…
Cancel
Save