Skip to content

Commit 6bd2cb3

Browse files
committed
NH-3807 - Make ProxyFactory take care of its own AppDomain.CurrentDomain
1 parent 7939a22 commit 6bd2cb3

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

src/NHibernate.Test/DynamicProxyTests/PeVerifyFixture.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ public SavingProxyAssemblyBuilder(string assemblyName)
121121
this.assemblyName = assemblyName;
122122
}
123123

124-
public AssemblyBuilder DefineDynamicAssembly(AppDomain appDomain, AssemblyName name)
124+
public AssemblyBuilder DefineDynamicAssembly(AssemblyName name)
125125
{
126126
AssemblyBuilderAccess access = AssemblyBuilderAccess.RunAndSave;
127-
return appDomain.DefineDynamicAssembly(new AssemblyName(assemblyName), access);
127+
return AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(assemblyName), access);
128128
}
129129

130130
public ModuleBuilder DefineDynamicModule(AssemblyBuilder assemblyBuilder, string moduleName)
@@ -140,4 +140,4 @@ public void Save(AssemblyBuilder assemblyBuilder)
140140

141141
#endregion
142142
}
143-
}
143+
}

src/NHibernate/Proxy/DynamicProxy/DefaultProxyAssemblyBuilder.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,24 @@ namespace NHibernate.Proxy.DynamicProxy
66
{
77
public class DefaultProxyAssemblyBuilder : IProxyAssemblyBuilder
88
{
9-
public AssemblyBuilder DefineDynamicAssembly(AppDomain appDomain, AssemblyName name)
9+
public AssemblyBuilder DefineDynamicAssembly(AssemblyName name)
1010
{
11+
#if FEATURE_APPDOMAIN || NET_4_0
1112
#if DEBUG
1213
AssemblyBuilderAccess access = AssemblyBuilderAccess.RunAndSave;
1314
#else
1415
AssemblyBuilderAccess access = AssemblyBuilderAccess.Run;
1516
#endif
17+
AppDomain appDomain = AppDomain.CurrentDomain;
1618
return appDomain.DefineDynamicAssembly(name, access);
19+
#else
20+
return AssemblyBuilder.DefineDynamicAssembly(name, AssemblyBuilderAccess.Run);
21+
#endif
1722
}
1823

1924
public ModuleBuilder DefineDynamicModule(AssemblyBuilder assemblyBuilder, string moduleName)
2025
{
21-
#if DEBUG
26+
#if DEBUG && FEATURE_APPDOMAIN
2227
ModuleBuilder moduleBuilder =
2328
assemblyBuilder.DefineDynamicModule(moduleName, string.Format("{0}.mod", moduleName), true);
2429
#else

src/NHibernate/Proxy/DynamicProxy/IProxyAssemblyBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace NHibernate.Proxy.DynamicProxy
66
{
77
public interface IProxyAssemblyBuilder
88
{
9-
AssemblyBuilder DefineDynamicAssembly(AppDomain appDomain, AssemblyName name);
9+
AssemblyBuilder DefineDynamicAssembly(AssemblyName name);
1010
ModuleBuilder DefineDynamicModule(AssemblyBuilder assemblyBuilder, string moduleName);
1111
void Save(AssemblyBuilder assemblyBuilder);
1212
}

src/NHibernate/Proxy/DynamicProxy/ProxyFactory.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,12 @@ public System.Type CreateProxyType(System.Type baseType, params System.Type[] in
9797

9898
private System.Type CreateUncachedProxyType(System.Type baseType, System.Type[] baseInterfaces)
9999
{
100-
AppDomain currentDomain = AppDomain.CurrentDomain;
101100
string typeName = string.Format("{0}Proxy", baseType.Name);
102101
string assemblyName = string.Format("{0}Assembly", typeName);
103102
string moduleName = string.Format("{0}Module", typeName);
104103

105104
var name = new AssemblyName(assemblyName);
106-
AssemblyBuilder assemblyBuilder = ProxyAssemblyBuilder.DefineDynamicAssembly(currentDomain, name);
105+
AssemblyBuilder assemblyBuilder = ProxyAssemblyBuilder.DefineDynamicAssembly(name);
107106
ModuleBuilder moduleBuilder = ProxyAssemblyBuilder.DefineDynamicModule(assemblyBuilder, moduleName);
108107

109108
TypeAttributes typeAttributes = TypeAttributes.AutoClass | TypeAttributes.Class |

0 commit comments

Comments
 (0)