svn commit: rev 22116 - in avalon/trunk/central/laboratory/avalon-net/DynamicProxy: . DynamicProxyTest

[email protected]
Newsgroups gmane.comp.jakarta.avalon.cvs
Message-ID <[email protected]>
Author: hammett
Date: Fri Jun 25 22:01:51 2004
New Revision: 22116

Added:
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMyInterface.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMySecondInterface.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IServiceStatus.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MyInterfaceImpl.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MySecondInterfaceImpl.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ServiceStatusImpl.cs   (contents, props changed)
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/StandardInvocationHandler.cs   (contents, props changed)
Modified:
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/Apache.Avalon.DynamicProxy.csproj
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/AssemblyInfo.cs
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxy.sln
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/Apache.Avalon.DynamicProxy.Test.csproj
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/AssemblyInfo.cs
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ProxyGeneratorTestCase.cs
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/IInvocationHandler.cs
   avalon/trunk/central/laboratory/avalon-net/DynamicProxy/ProxyGenerator.cs
Log:
Refactoring in test cases. Applied suggestion from Stefan Zobel (stefan.zobel at lycos.de) from Spring.Net devel list.

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/Apache.Avalon.DynamicProxy.csproj
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/Apache.Avalon.DynamicProxy.csproj	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/Apache.Avalon.DynamicProxy.csproj	Fri Jun 25 22:01:51 2004
@@ -1,105 +1,110 @@
-<VisualStudioProject>
-    <CSHARP
-        ProjectType = "Local"
-        ProductVersion = "7.10.3077"
-        SchemaVersion = "2.0"
-        ProjectGuid = "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
-    >
-        <Build>
-            <Settings
-                ApplicationIcon = ""
-                AssemblyKeyContainerName = ""
-                AssemblyName = "Apache.Avalon.DynamicProxy"
-                AssemblyOriginatorKeyFile = ""
-                DefaultClientScript = "JScript"
-                DefaultHTMLPageLayout = "Grid"
-                DefaultTargetSchema = "IE50"
-                DelaySign = "false"
-                OutputType = "Library"
-                PreBuildEvent = ""
-                PostBuildEvent = ""
-                RootNamespace = "Apache.Avalon.DynamicProxy"
-                RunPostBuildEvent = "OnBuildSuccess"
-                StartupObject = ""
-            >
-                <Config
-                    Name = "Debug"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "DEBUG;TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "true"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "false"
-                    OutputPath = "..\bin\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-                <Config
-                    Name = "Release"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "false"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "true"
-                    OutputPath = "bin\Release\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-            </Settings>
-            <References>
-                <Reference
-                    Name = "System"
-                    AssemblyName = "System"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
-                />
-                <Reference
-                    Name = "System.Data"
-                    AssemblyName = "System.Data"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
-                />
-                <Reference
-                    Name = "System.XML"
-                    AssemblyName = "System.Xml"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
-                />
-            </References>
-        </Build>
-        <Files>
-            <Include>
-                <File
-                    RelPath = "AssemblyInfo.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "IInvocationHandler.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "ProxyGenerator.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-            </Include>
-        </Files>
-    </CSHARP>
-</VisualStudioProject>
-
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.10.3077"
+        SchemaVersion = "2.0"
+        ProjectGuid = "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "Apache.Avalon.DynamicProxy"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "Library"
+                PreBuildEvent = ""
+                PostBuildEvent = ""
+                RootNamespace = "Apache.Avalon.DynamicProxy"
+                RunPostBuildEvent = "OnBuildSuccess"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "false"
+                    OutputPath = "..\bin\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IInvocationHandler.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "ProxyGenerator.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "StandardInvocationHandler.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/AssemblyInfo.cs
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/AssemblyInfo.cs	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/AssemblyInfo.cs	Fri Jun 25 22:01:51 2004
@@ -23,7 +23,7 @@
 [assembly: AssemblyCopyright("Copyright (c) 2004 The Apache Software Foundation")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]		
-[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0.1")]
 
 #if STRONG
 [assembly: AssemblyDelaySign(false)]

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxy.sln
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxy.sln	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxy.sln	Fri Jun 25 22:01:51 2004
@@ -1,29 +1,29 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Avalon.DynamicProxy", "Apache.Avalon.DynamicProxy.csproj", "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Avalon.DynamicProxy.Test", "DynamicProxyTest\Apache.Avalon.DynamicProxy.Test.csproj", "{EF89321E-FB2A-41B6-85B3-794D50A55CF1}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		Debug = Debug
-		Release = Release
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Debug.ActiveCfg = Debug|.NET
-		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Debug.Build.0 = Debug|.NET
-		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Release.ActiveCfg = Release|.NET
-		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Release.Build.0 = Release|.NET
-		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Debug.ActiveCfg = Debug|.NET
-		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Debug.Build.0 = Debug|.NET
-		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Release.ActiveCfg = Release|.NET
-		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Release.Build.0 = Release|.NET
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Avalon.DynamicProxy", "Apache.Avalon.DynamicProxy.csproj", "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Avalon.DynamicProxy.Test", "DynamicProxyTest\Apache.Avalon.DynamicProxy.Test.csproj", "{EF89321E-FB2A-41B6-85B3-794D50A55CF1}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Debug.ActiveCfg = Debug|.NET
+		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Debug.Build.0 = Debug|.NET
+		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Release.ActiveCfg = Release|.NET
+		{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}.Release.Build.0 = Release|.NET
+		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Debug.ActiveCfg = Debug|.NET
+		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Debug.Build.0 = Debug|.NET
+		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Release.ActiveCfg = Release|.NET
+		{EF89321E-FB2A-41B6-85B3-794D50A55CF1}.Release.Build.0 = Release|.NET
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/Apache.Avalon.DynamicProxy.Test.csproj
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/Apache.Avalon.DynamicProxy.Test.csproj	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/Apache.Avalon.DynamicProxy.Test.csproj	Fri Jun 25 22:01:51 2004
@@ -1,110 +1,140 @@
-<VisualStudioProject>
-    <CSHARP
-        ProjectType = "Local"
-        ProductVersion = "7.10.3077"
-        SchemaVersion = "2.0"
-        ProjectGuid = "{EF89321E-FB2A-41B6-85B3-794D50A55CF1}"
-    >
-        <Build>
-            <Settings
-                ApplicationIcon = ""
-                AssemblyKeyContainerName = ""
-                AssemblyName = "Apache.Avalon.DynamicProxy.Test"
-                AssemblyOriginatorKeyFile = ""
-                DefaultClientScript = "JScript"
-                DefaultHTMLPageLayout = "Grid"
-                DefaultTargetSchema = "IE50"
-                DelaySign = "false"
-                OutputType = "Library"
-                PreBuildEvent = ""
-                PostBuildEvent = ""
-                RootNamespace = "Apache.Avalon.DynamicProxy.Test"
-                RunPostBuildEvent = "OnBuildSuccess"
-                StartupObject = ""
-            >
-                <Config
-                    Name = "Debug"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "DEBUG;TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "true"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "false"
-                    OutputPath = "..\..\bin\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-                <Config
-                    Name = "Release"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "false"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    NoStdLib = "false"
-                    NoWarn = ""
-                    Optimize = "true"
-                    OutputPath = "bin\Release\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-            </Settings>
-            <References>
-                <Reference
-                    Name = "System"
-                    AssemblyName = "System"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
-                />
-                <Reference
-                    Name = "System.Data"
-                    AssemblyName = "System.Data"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
-                />
-                <Reference
-                    Name = "System.XML"
-                    AssemblyName = "System.Xml"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
-                />
-                <Reference
-                    Name = "DProxy"
-                    Project = "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
-                    Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
-                />
-                <Reference
-                    Name = "nunit.framework"
-                    AssemblyName = "nunit.framework"
-                    HintPath = "..\..\..\..\..\..\dotnet\NUnit2\bin\nunit.framework.dll"
-                />
-            </References>
-        </Build>
-        <Files>
-            <Include>
-                <File
-                    RelPath = "AssemblyInfo.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "ProxyGeneratorTestCase.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-            </Include>
-        </Files>
-    </CSHARP>
-</VisualStudioProject>
-
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.10.3077"
+        SchemaVersion = "2.0"
+        ProjectGuid = "{EF89321E-FB2A-41B6-85B3-794D50A55CF1}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "Apache.Avalon.DynamicProxy.Test"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "Library"
+                PreBuildEvent = ""
+                PostBuildEvent = ""
+                RootNamespace = "Apache.Avalon.DynamicProxy.Test"
+                RunPostBuildEvent = "OnBuildSuccess"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "false"
+                    OutputPath = "..\..\bin\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+                />
+                <Reference
+                    Name = "DProxy"
+                    Project = "{70EE6AF2-1F6D-4CC5-A1B2-C3182F035F67}"
+                    Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
+                />
+                <Reference
+                    Name = "nunit.framework"
+                    AssemblyName = "nunit.framework"
+                    HintPath = "..\..\..\..\..\..\..\..\..\dotnet\NUnit2\bin\nunit.framework.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IMyInterface.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IMySecondInterface.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IServiceStatus.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "MyInterfaceImpl.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "MySecondInterfaceImpl.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "ProxyGeneratorTestCase.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "ServiceStatusImpl.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/AssemblyInfo.cs
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/AssemblyInfo.cs	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/AssemblyInfo.cs	Fri Jun 25 22:01:51 2004
@@ -23,5 +23,5 @@
 [assembly: AssemblyCopyright("Copyright (c) 2004 The Apache Software Foundation")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]		
-[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0.1")]
 

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMyInterface.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMyInterface.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,42 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for IMyInterface.
+	/// </summary>
+	public interface IMyInterface
+	{
+		String Name
+		{
+			get;
+			set;
+		}
+
+		bool Started
+		{
+			get;
+			set;
+		}
+
+		// void Calc(int x, int y, out int result);
+
+		int Calc(int x, int y);
+
+		int Calc(int x, int y, int z, Single k);
+	}
+}

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMySecondInterface.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IMySecondInterface.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,30 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for IMySecondInterface.
+	/// </summary>
+	public interface IMySecondInterface : IMyInterface
+	{
+		String Address
+		{
+			get;
+			set;
+		}
+	}
+}

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IServiceStatus.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/IServiceStatus.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,45 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Simple enum declaration
+	/// </summary>
+	public enum State
+	{
+		Valid, 
+		Invalid
+	}
+
+	/// <summary>
+	/// Summary description for IServiceStatus.
+	/// </summary>
+	public interface IServiceStatus
+	{
+		int Requests
+		{
+			get;
+		}
+
+		State ActualState
+		{
+			get;
+		}
+
+		void ChangeState(State state);
+	}
+}

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MyInterfaceImpl.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MyInterfaceImpl.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,69 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for MyInterfaceImpl.
+	/// </summary>
+	public class MyInterfaceImpl : IMyInterface
+	{
+		private String m_name;
+		private bool m_started;
+
+		public MyInterfaceImpl()
+		{
+		}
+
+		#region IMyInterface Members
+
+		public String Name
+		{
+			get
+			{
+				return m_name;
+			}
+			set
+			{
+				m_name = value;
+			}
+		}
+
+		public bool Started
+		{
+			get
+			{
+				return m_started;
+			}
+			set
+			{
+				m_started = value;
+			}
+		}
+
+		public int Calc(int x, int y)
+		{
+			return x + y;
+		}
+
+		public int Calc(int x, int y, int z, Single k)
+		{
+			return x + y + z + (int)k;
+		}
+
+		#endregion
+	}
+}

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MySecondInterfaceImpl.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/MySecondInterfaceImpl.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,46 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for MySecondInterfaceImpl.
+	/// </summary>
+	public class MySecondInterfaceImpl : MyInterfaceImpl, IMySecondInterface
+	{
+		private String m_address;
+
+		public MySecondInterfaceImpl()
+		{
+		}
+
+		#region IMySecondInterface Members
+
+		public String Address
+		{
+			get
+			{
+				return m_address;
+			}
+			set
+			{
+				m_address = value;
+			}
+		}
+
+		#endregion
+	}
+}

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ProxyGeneratorTestCase.cs
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ProxyGeneratorTestCase.cs	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ProxyGeneratorTestCase.cs	Fri Jun 25 22:01:51 2004
@@ -25,263 +25,79 @@
 	/// Summary description for ProxyGeneratorTestCase.
 	/// </summary>
 	[TestFixture]
-	public class ProxyGeneratorTestCase : Assertion, IInvocationHandler, IMyInterface, IMySecondInterface, IServiceStatus
+	public class ProxyGeneratorTestCase : Assertion
 	{
-		protected String m_nameProperty;
-		protected String m_addressProperty;
-		protected State m_state = State.Invalid;
-		protected bool m_started;
-
 		[Test]
-		public void TestSimpleCase()
+		public void TestGenerationSimpleInterface()
 		{
-			object proxy = ProxyGenerator.CreateProxy( new Type[] { typeof(IMyInterface) }, this );
+			object proxy = ProxyGenerator.CreateProxy( 
+				typeof(IMyInterface), new StandardInvocationHandler( new MyInterfaceImpl() ) );
+			
 			AssertNotNull( proxy );
 			Assert( typeof(IMyInterface).IsAssignableFrom( proxy.GetType() ) );
 
 			IMyInterface inter = (IMyInterface) proxy;
-			inter.Calc(1, "ola");
+
+			AssertEquals( 45, inter.Calc( 20, 25 ) );
+
 			inter.Name = "opa";
 			AssertEquals( "opa", inter.Name );
+
 			inter.Started = true;
 			AssertEquals( true, inter.Started );
-			AssertEquals( 45, inter.Calc( 20, 25 ) );
 		}
 
 		[Test]
-		public void TestMoreComplexCase()
+		public void TestGenerationWithInterfaceHeritage()
 		{
-			object proxy = ProxyGenerator.CreateProxy( new Type[] { typeof(IMySecondInterface) }, this );
+			object proxy = ProxyGenerator.CreateProxy( 
+				typeof(IMySecondInterface), new StandardInvocationHandler( new MySecondInterfaceImpl() ) );
+
 			AssertNotNull( proxy );
 			Assert( typeof(IMyInterface).IsAssignableFrom( proxy.GetType() ) );
 			Assert( typeof(IMySecondInterface).IsAssignableFrom( proxy.GetType() ) );
 
 			IMySecondInterface inter = (IMySecondInterface) proxy;
-			inter.Calc(1, "ola");
-			inter.Name = "opa";
-			AssertEquals( "opa", inter.Name );
+			inter.Calc(1, 1);
+
+			inter.Name = "hammett";
+			AssertEquals( "hammett", inter.Name );
+
 			inter.Address = "pereira leite, 44";
 			AssertEquals( "pereira leite, 44", inter.Address );
+			
 			AssertEquals( 45, inter.Calc( 20, 25 ) );
 		}
 
 		[Test]
-		public void TestEnumCase()
+		public void TestEnumProperties()
 		{
-			m_state = State.Invalid;
+			ServiceStatusImpl service = new ServiceStatusImpl();
 
-			object proxy = ProxyGenerator.CreateProxy( new Type[] { typeof(IServiceStatus) }, this );
+			object proxy = ProxyGenerator.CreateProxy( 
+				typeof(IServiceStatus), new StandardInvocationHandler( service ) );
+			
 			AssertNotNull( proxy );
 			Assert( typeof(IServiceStatus).IsAssignableFrom( proxy.GetType() ) );
 
 			IServiceStatus inter = (IServiceStatus) proxy;
 			AssertEquals( State.Invalid, inter.ActualState );
+			
 			inter.ChangeState( State.Valid );
 			AssertEquals( State.Valid, inter.ActualState );
 		}
 
-		#region IInvocationHandler Members
-
-		public object Invoke(object obj, MethodBase method, params object[] arguments)
-		{
-			Type[] parameters = new Type[arguments.Length];
-			
-			for(int i=0; i < arguments.Length; i++ )
-			{
-				parameters[i] = arguments[i].GetType();
-			}
-
-			MethodInfo ourMethod = this.GetType().GetMethod( method.Name, parameters );
-
-			AssertNotNull( ourMethod );
-			
-			return ourMethod.Invoke( this, arguments );
-		}
-
-		#endregion
-
-		#region IMyInterface Members
-
-		public String Name
-		{
-			get
-			{
-				return m_nameProperty;
-			}
-			set
-			{
-				m_nameProperty = value;
-			}
-		}
-
-		public bool Started
-		{
-			get
-			{
-				return m_started;
-			}
-			set
-			{
-				m_started = value;
-			}
-		}
-
-		public void Calc(int x, String y)
-		{
-		}
-
-		public void Calc(int x, String y, Single ip)
-		{
-		}
-
-		public int Calc(int x, int y)
-		{
-			return x + y;
-		}
-
-		public int Calc(int x, int y, int z, Single h)
-		{
-			return x + y + z + (int)h;
-		}
-
-		#endregion
-
-		#region IMySecondInterface Members
-
-		public String Address
-		{
-			get
-			{
-				return m_addressProperty;
-			}
-			set
-			{
-				m_addressProperty = value;
-			}
-		}
-
-		#endregion
-
-		#region IServiceStatus Members
-
-		public int Requests
-		{
-			get
-			{
-				return 32;
-			}
-		}
-
-		public Apache.Avalon.DynamicProxy.Test.State ActualState
-		{
-			get
-			{
-				return m_state ;
-			}
-		}
-
-		public void ChangeState(Apache.Avalon.DynamicProxy.Test.State state)
-		{
-			m_state = state;
-		}
-
-		#endregion
-	}
-	
-	/// <summary>
-	/// 
-	/// </summary>
-	public enum State
-	{
-		Valid, 
-		Invalid
-	}
-
-	/// <summary>
-	/// 
-	/// </summary>
-	public interface IMyInterface
-	{
-		String Name
-		{
-			get;
-			set;
-		}
-
-		bool Started
+		public class MyInterfaceProxy : IInvocationHandler
 		{
-			get;
-			set;
+			#region IInvocationHandler Members
+
+			public object Invoke(object proxy, MethodInfo method, params object[] arguments)
+			{
+				return null;
+			}
+
+			#endregion
 		}
-
-		void Calc(int x, String y);
-
-		void Calc(int x, String y, Single ip);
-
-		int Calc(int x, int y);
-
-		int Calc(int x, int y, int z, Single h);
-	}
-
-	/// <summary>
-	/// 
-	/// </summary>
-	public interface IMySecondInterface : IMyInterface
-	{
-		String Address
-		{
-			get;
-			set;
-		}
-	}
-
-	public interface IServiceStatus
-	{
-		int Requests
-		{
-			get;
-		}
-
-		State ActualState
-		{
-			get;
-		}
-
-		void ChangeState(State state);
-	}
-
-	public class MyTest : IServiceStatus
-	{
-		IInvocationHandler handler = null;
-
-		#region IServiceStatus Members
-
-		public int Requests
-		{
-			get
-			{
-				MethodBase method = MethodBase.GetCurrentMethod();
-				return (int) handler.Invoke( this, method );
-			}
-		}
-
-		public Apache.Avalon.DynamicProxy.Test.State ActualState
-		{
-			get
-			{
-				MethodBase method = MethodBase.GetCurrentMethod();
-				return (State) handler.Invoke( this, method );
-			}
-		}
-
-		public void ChangeState(Apache.Avalon.DynamicProxy.Test.State state)
-		{
-			MethodBase method = MethodBase.GetCurrentMethod();
-			handler.Invoke( this, method, state );
-		}
-
-		#endregion
-
 	}
 }
 

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ServiceStatusImpl.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/DynamicProxyTest/ServiceStatusImpl.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,55 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy.Test
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for ServiceStatusImpl.
+	/// </summary>
+	public class ServiceStatusImpl : IServiceStatus
+	{
+		private Apache.Avalon.DynamicProxy.Test.State m_state = Apache.Avalon.DynamicProxy.Test.State.Invalid;
+
+		public ServiceStatusImpl()
+		{
+		}
+
+		#region IServiceStatus Members
+
+		public int Requests
+		{
+			get
+			{
+				return 10;
+			}
+		}
+
+		public Apache.Avalon.DynamicProxy.Test.State ActualState
+		{
+			get
+			{
+				return m_state;
+			}
+		}
+
+		public void ChangeState(Apache.Avalon.DynamicProxy.Test.State state)
+		{
+			m_state = state;
+		}
+
+		#endregion
+	}
+}

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/IInvocationHandler.cs
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/IInvocationHandler.cs	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/IInvocationHandler.cs	Fri Jun 25 22:01:51 2004
@@ -27,9 +27,9 @@
 		/// Implementation should invoke the method on the real object.
 		/// </summary>
 		/// <param name="proxy">proxy instance</param>
-		/// <param name="method"><see cref="System.Reflection.MethodBase"/> being invoked.</param>
+		/// <param name="method"><see cref="System.Reflection.MethodInfo"/> being invoked.</param>
 		/// <param name="arguments">Arguments of method - if any</param>
 		/// <returns>Should return the result of method invocation</returns>
-		object Invoke(object proxy, MethodBase method, params object[] arguments);
+		object Invoke(object proxy, MethodInfo method, params object[] arguments);
 	}
 }

Modified: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/ProxyGenerator.cs
==============================================================================
--- avalon/trunk/central/laboratory/avalon-net/DynamicProxy/ProxyGenerator.cs	(original)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/ProxyGenerator.cs	Fri Jun 25 22:01:51 2004
@@ -28,6 +28,10 @@
 	/// implementing the specified interfaces. The class implementation will 
 	/// only call the internal <see cref="IInvocationHandler"/> instance.
 	/// </remarks>
+	/// <remarks>
+	/// This proxy implementation currently doesn't not supports ref and out arguments 
+	/// in methods.
+	/// </remarks>
 	/// <example>
 	/// <code>
 	/// MyInvocationHandler handler = ...
@@ -48,6 +52,18 @@
 		/// Generates a proxy implementing all the specified interfaces and
 		/// redirecting method invocations to the specifed handler.
 		/// </summary>
+		/// <param name="theInterface">Interface to be implemented</param>
+		/// <param name="handler">instance of <see cref="IInvocationHandler"/></param>
+		/// <returns>Proxy instance</returns>
+		public static object CreateProxy(Type theInterface, IInvocationHandler handler)
+		{
+			return CreateProxy(new Type[] { theInterface }, handler );
+		}
+
+		/// <summary>
+		/// Generates a proxy implementing all the specified interfaces and
+		/// redirecting method invocations to the specifed handler.
+		/// </summary>
 		/// <param name="interfaces">Array of interfaces to be implemented</param>
 		/// <param name="handler">instance of <see cref="IInvocationHandler"/></param>
 		/// <returns>Proxy instance</returns>
@@ -246,7 +262,7 @@
 				}
 			}
 
-			WriteILForMethod( methodBuilder, parameters, handlerField );
+			WriteILForMethod( method, methodBuilder, parameters, handlerField );
 		}
 
 		/// <summary>
@@ -267,7 +283,7 @@
 		/// <param name="typeBuilder"><see cref="TypeBuilder"/> being constructed.</param>
 		/// <param name="parameters"></param>
 		/// <param name="handlerField"></param>
-		private static void WriteILForMethod( MethodBuilder builder, 
+		private static void WriteILForMethod( MethodInfo method, MethodBuilder builder, 
 			System.Type[] parameters, FieldBuilder handlerField )
 		{
 			int arrayPositionInStack = 1;
@@ -284,11 +300,12 @@
 
 			ilGenerator.DeclareLocal( typeof(object[]) );
 
-			ilGenerator.Emit(OpCodes.Call, typeof(MethodBase).GetMethod("GetCurrentMethod") );
+			ilGenerator.Emit(OpCodes.Ldtoken, method);
+			ilGenerator.Emit(OpCodes.Call, typeof(MethodBase).GetMethod("GetMethodFromHandle"));
 
 			ilGenerator.Emit(OpCodes.Stloc_0);
 			ilGenerator.Emit(OpCodes.Ldarg_0);
-			ilGenerator.Emit(OpCodes.Ldfld, handlerField );
+			ilGenerator.Emit(OpCodes.Ldfld, handlerField);
 			ilGenerator.Emit(OpCodes.Ldarg_0);
 			ilGenerator.Emit(OpCodes.Ldloc_0);
 			ilGenerator.Emit(OpCodes.Ldc_I4, parameters.Length);
@@ -339,7 +356,6 @@
 			{
 				ilGenerator.Emit(OpCodes.Pop);
 			}
-
 
 			ilGenerator.Emit(OpCodes.Ret);
 		}

Added: avalon/trunk/central/laboratory/avalon-net/DynamicProxy/StandardInvocationHandler.cs
==============================================================================
--- (empty file)
+++ avalon/trunk/central/laboratory/avalon-net/DynamicProxy/StandardInvocationHandler.cs	Fri Jun 25 22:01:51 2004
@@ -0,0 +1,67 @@
+// Copyright 2004 The Apache Software Foundation
+// 
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// 
+//     http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Apache.Avalon.DynamicProxy
+{
+	using System;
+
+	/// <summary>
+	/// Summary description for StandardInvocationHandler.
+	/// </summary>
+	public class StandardInvocationHandler : IInvocationHandler
+	{
+		private object m_target;
+
+		public StandardInvocationHandler(object target)
+		{
+			if (target == null)
+			{
+				throw new ArgumentNullException("target");
+			}
+
+			m_target = target;
+		}
+
+		protected virtual void PreInvoke(object proxy, System.Reflection.MethodInfo method, params object[] arguments)
+		{
+		}
+
+		protected virtual void PostInvoke(object proxy, System.Reflection.MethodInfo method, ref object returnValue, params object[] arguments)
+		{
+		}
+
+		#region IInvocationHandler Members
+
+		public virtual object Invoke(object proxy, System.Reflection.MethodInfo method, params object[] arguments)
+		{
+			PreInvoke(proxy, method, arguments);
+
+			object returnValue = method.Invoke( Target, arguments );
+
+			PostInvoke(proxy, method, ref returnValue, arguments);
+			
+			return returnValue;
+		}
+
+		#endregion
+
+		public object Target
+		{
+			get
+			{
+				return m_target;
+			}
+		}
+	}
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.