diff --git a/DynamORM.sln b/DynamORM.sln
index 715dae6..7883d46 100644
--- a/DynamORM.sln
+++ b/DynamORM.sln
@@ -29,6 +29,18 @@ Global
{63963ED7-9C78-4672-A4D4-339B6E825503}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{63963ED7-9C78-4672-A4D4-339B6E825503}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{63963ED7-9C78-4672-A4D4-339B6E825503}.Release|x86.ActiveCfg = Release|Any CPU
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Any CPU.Build.0 = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|x86.ActiveCfg = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|x86.Build.0 = Debug|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Any CPU.ActiveCfg = Release|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Any CPU.Build.0 = Release|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Mixed Platforms.Build.0 = Release|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|x86.ActiveCfg = Release|x86
+ {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|x86.Build.0 = Release|x86
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -39,16 +51,6 @@ Global
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D5013B4E-8A1B-4DBB-8FB5-E09935F4F764}.Release|x86.ActiveCfg = Release|Any CPU
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Any CPU.ActiveCfg = Debug|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|x86.ActiveCfg = Debug|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Debug|x86.Build.0 = Debug|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Any CPU.ActiveCfg = Release|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Mixed Platforms.ActiveCfg = Release|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|Mixed Platforms.Build.0 = Release|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|x86.ActiveCfg = Release|x86
- {A64D2052-D0CD-488E-BF05-E5952615D926}.Release|x86.Build.0 = Release|x86
{F747AA57-BEA7-4FB8-B371-546296789AEF}.Debug|Any CPU.ActiveCfg = Debug|x86
{F747AA57-BEA7-4FB8-B371-546296789AEF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{F747AA57-BEA7-4FB8-B371-546296789AEF}.Debug|Mixed Platforms.Build.0 = Debug|x86
@@ -60,6 +62,9 @@ Global
{F747AA57-BEA7-4FB8-B371-546296789AEF}.Release|x86.ActiveCfg = Release|x86
{F747AA57-BEA7-4FB8-B371-546296789AEF}.Release|x86.Build.0 = Release|x86
EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = AmalgamationTool\AmalgamationTool.csproj
+ EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
diff --git a/DynamORM/DynamORM.csproj b/DynamORM/DynamORM.csproj
index 120421d..1d5af67 100644
--- a/DynamORM/DynamORM.csproj
+++ b/DynamORM/DynamORM.csproj
@@ -29,6 +29,10 @@
4
true
true
+ False
+ Auto
+ 4194304
+ AnyCPU
PdbOnly
@@ -38,9 +42,12 @@
prompt
4
true
- false
true
bin\Release\DynamORM.xml
+ False
+ Auto
+ 4194304
+ AnyCPU
False
diff --git a/DynamORM/Helpers/Dynamics/DynamicProxy.cs b/DynamORM/Helpers/Dynamics/DynamicProxy.cs
index 92a28f5..9907414 100644
--- a/DynamORM/Helpers/Dynamics/DynamicProxy.cs
+++ b/DynamORM/Helpers/Dynamics/DynamicProxy.cs
@@ -67,7 +67,9 @@ namespace DynamORM.Helpers.Dynamics
k => k.Value.Name,
v => v.Value);
- _methods = GetAllMembers(_type)
+ _methods = mapper.MethodsMap;
+
+ /*GetAllMembers(_type)
.Where(x => x is MethodInfo)
.Cast()
.Where(m => !((m.Name.StartsWith("set_") && m.ReturnType == typeof(void)) || m.Name.StartsWith("get_")))
@@ -84,7 +86,7 @@ namespace DynamORM.Helpers.Dynamics
{
return null;
}
- });
+ });*/
}
/// Provides implementation for type conversion operations.
@@ -236,7 +238,7 @@ namespace DynamORM.Helpers.Dynamics
if (d != null)
{
- result = d.DynamicInvoke(CompleteArguments(mi.GetParameters().ToArray(), args));
+ result = d.DynamicInvoke(CompleteArguments(mi.GetParameters().ToArray(), args).ToArray());
if (d.Method.ReturnType == _type && result is T)
result = new DynamicProxy((T)result);
@@ -245,7 +247,7 @@ namespace DynamORM.Helpers.Dynamics
}
else if (mi != null)
{
- result = mi.Invoke(_proxy, CompleteArguments(mi.GetParameters().ToArray(), args));
+ result = mi.Invoke(_proxy, CompleteArguments(mi.GetParameters().ToArray(), args).Skip(1).ToArray());
if (mi.ReturnType == _type && result is T)
result = new DynamicProxy((T)result);
@@ -268,9 +270,9 @@ namespace DynamORM.Helpers.Dynamics
return true;
}
- private object[] CompleteArguments(ParameterInfo[] parameters, object[] arguments)
+ private IEnumerable