Browse Source

Applied forms designer assembly loading patch by Alex Prudkiy.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1722 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
cbbedce145
  1. 2
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  2. 10
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
  3. 23
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeResolutionService.cs

2
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -132,9 +132,7 @@ namespace ICSharpCode.FormsDesigner @@ -132,9 +132,7 @@ namespace ICSharpCode.FormsDesigner
designerResourceService.Host = Host;
DesignerLoader designerLoader = loaderProvider.CreateLoader(generator);
TypeResolutionService.AddAssemblyResolver();
designSurface.BeginLoad(designerLoader);
TypeResolutionService.RemoveAssemblyResolver();
generator.Attach(this);

10
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs

@ -110,23 +110,13 @@ namespace ICSharpCode.FormsDesigner.Gui @@ -110,23 +110,13 @@ namespace ICSharpCode.FormsDesigner.Gui
protected override IComponent[] CreateComponentsCore(IDesignerHost host)
{
Init();
TypeResolutionService.AddAssemblyResolver();
try {
return base.CreateComponentsCore(host);
} finally {
TypeResolutionService.RemoveAssemblyResolver();
}
}
protected override IComponent[] CreateComponentsCore(IDesignerHost host, System.Collections.IDictionary defaultValues)
{
Init();
TypeResolutionService.AddAssemblyResolver();
try {
return base.CreateComponentsCore(host, defaultValues);
} finally {
TypeResolutionService.RemoveAssemblyResolver();
}
}
}
}

23
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeResolutionService.cs

@ -44,6 +44,9 @@ namespace ICSharpCode.FormsDesigner.Services @@ -44,6 +44,9 @@ namespace ICSharpCode.FormsDesigner.Services
DesignerAssemblies.Add(ProjectContentRegistry.SystemAssembly);
DesignerAssemblies.Add(typeof(System.Drawing.Point).Assembly);
DesignerAssemblies.Add(typeof(System.Windows.Forms.Design.AnchorEditor).Assembly);
RegisterVSDesignerWorkaround();
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolveEventHandler;
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
@ -224,15 +227,6 @@ namespace ICSharpCode.FormsDesigner.Services @@ -224,15 +227,6 @@ namespace ICSharpCode.FormsDesigner.Services
}
}
AddAssemblyResolver();
try {
asm.GetTypes(); // force loading references etc.
} catch {
// some assemblies cause strange exceptions in Reflection...
} finally {
RemoveAssemblyResolver();
}
lock (designerAssemblies) {
if (!designerAssemblies.Contains(asm))
designerAssemblies.Insert(0, asm);
@ -427,17 +421,6 @@ namespace ICSharpCode.FormsDesigner.Services @@ -427,17 +421,6 @@ namespace ICSharpCode.FormsDesigner.Services
}
#endregion
public static void AddAssemblyResolver()
{
RegisterVSDesignerWorkaround();
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolveEventHandler;
}
public static void RemoveAssemblyResolver()
{
AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolveEventHandler;
}
static Assembly AssemblyResolveEventHandler(object sender, ResolveEventArgs args)
{
LoggingService.Debug("TypeResolutionService: AssemblyResolveEventHandler: " + args.Name);

Loading…
Cancel
Save