castle.dynamicproxy2 2.1.0.0 → 2.2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/docs/ASL - Apache Software Foundation License.txt +57 -0
- data/docs/Committers.txt +80 -0
- data/docs/ReleaseNotes/Changes.txt +234 -0
- data/lib/net-20/Castle.DynamicProxy2.dll +0 -0
- data/lib/{net-3.5 → net-20}/Castle.DynamicProxy2.xml +391 -169
- data/lib/net-35/Castle.DynamicProxy2.dll +0 -0
- data/lib/{net-2.0 → net-35}/Castle.DynamicProxy2.xml +391 -169
- data/lib/sl-30/Castle.DynamicProxy2.dll +0 -0
- data/lib/sl-30/Castle.DynamicProxy2.xml +1348 -0
- metadata +15 -12
- data/docs/Core Changes.txt +0 -85
- data/docs/DynamicProxy Changes.txt +0 -163
- data/lib/net-2.0/Castle.DynamicProxy2.dll +0 -0
- data/lib/net-3.5/Castle.DynamicProxy2.dll +0 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
Apache License, Version 2.0
|
2
|
+
|
3
|
+
Apache License
|
4
|
+
Version 2.0, January 2004
|
5
|
+
http://www.apache.org/licenses/
|
6
|
+
|
7
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
8
|
+
|
9
|
+
1. Definitions.
|
10
|
+
|
11
|
+
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
12
|
+
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
14
|
+
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
16
|
+
|
17
|
+
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
18
|
+
|
19
|
+
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
20
|
+
|
21
|
+
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
22
|
+
|
23
|
+
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
24
|
+
|
25
|
+
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
26
|
+
|
27
|
+
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
28
|
+
|
29
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
30
|
+
|
31
|
+
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
32
|
+
|
33
|
+
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
34
|
+
|
35
|
+
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
36
|
+
|
37
|
+
1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
|
38
|
+
|
39
|
+
2. You must cause any modified files to carry prominent notices stating that You changed the files; and
|
40
|
+
|
41
|
+
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
|
42
|
+
|
43
|
+
4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
|
44
|
+
|
45
|
+
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
46
|
+
|
47
|
+
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
48
|
+
|
49
|
+
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
50
|
+
|
51
|
+
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
52
|
+
|
53
|
+
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
54
|
+
|
55
|
+
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
56
|
+
|
57
|
+
END OF TERMS AND CONDITIONS
|
data/docs/Committers.txt
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
This file names who's behind the Castle Team. You can find more about us at http://www.castleproject.org/community/team.html
|
2
|
+
|
3
|
+
Committers
|
4
|
+
==========
|
5
|
+
(ordered by the date when joined the project)
|
6
|
+
|
7
|
+
- hammett/Hamilton Verissimo
|
8
|
+
- Henry Concei��o
|
9
|
+
- Kevin Williams
|
10
|
+
- Craig Neuwirt
|
11
|
+
- Gilles Bayon
|
12
|
+
- Andrew Hallock
|
13
|
+
- Jason Nelson
|
14
|
+
- Dru Sellers
|
15
|
+
- John Morales
|
16
|
+
- CobraLord
|
17
|
+
- Dan
|
18
|
+
- Tatham Oddie
|
19
|
+
- Fabio David Batista
|
20
|
+
- Chad Humphries
|
21
|
+
- Ayende Rahien
|
22
|
+
- G. Richard Bellamy
|
23
|
+
- Roelof Blom
|
24
|
+
- Ahmed Ghandour
|
25
|
+
- Josh Robb
|
26
|
+
- Ernst Naezer
|
27
|
+
- Marc-Andre Cournoyer
|
28
|
+
- Fabian Schmied
|
29
|
+
- Dave Godfrey
|
30
|
+
- Markus Zywitza
|
31
|
+
- Lee Henson
|
32
|
+
- Ken Egozi
|
33
|
+
- Chris Ortman
|
34
|
+
- Jonathon Rossi
|
35
|
+
- Tuna Toks�z
|
36
|
+
- Krzysztof Kozmic
|
37
|
+
- Mauricio Scheffer
|
38
|
+
- John Simons
|
39
|
+
|
40
|
+
Managers
|
41
|
+
========
|
42
|
+
|
43
|
+
Patch Manager
|
44
|
+
-------------
|
45
|
+
|
46
|
+
- Josh Robb
|
47
|
+
|
48
|
+
Documentation Manager
|
49
|
+
---------------------
|
50
|
+
|
51
|
+
-
|
52
|
+
|
53
|
+
|
54
|
+
PMC Members
|
55
|
+
===========
|
56
|
+
(ordered by the date when joined the PMC)
|
57
|
+
|
58
|
+
- hammett/Hamilton Verissimo (Chair)
|
59
|
+
- Henry Concei��o
|
60
|
+
- Kevin Williams
|
61
|
+
- Craig Neuwirt
|
62
|
+
- Gilles Bayon
|
63
|
+
- Chad Humphries
|
64
|
+
- Ayende Rahien
|
65
|
+
- Fabio David Batista
|
66
|
+
- Roelof Blom
|
67
|
+
- Josh Robb
|
68
|
+
- Jonathon Rossi
|
69
|
+
|
70
|
+
Emeritus
|
71
|
+
========
|
72
|
+
(no longer active committers)
|
73
|
+
|
74
|
+
- Gilles Bayon
|
75
|
+
- Dan
|
76
|
+
- Andrew Hallock
|
77
|
+
- John Morales
|
78
|
+
- CobraLord
|
79
|
+
- Tatham Oddie
|
80
|
+
- Ahmed Ghandour
|
@@ -0,0 +1,234 @@
|
|
1
|
+
2.2.0 (2010-01-11)
|
2
|
+
==================
|
3
|
+
- Fixed medium trust issue introduced in 2.2.0 Beta 1 where it would try to create a trace logger.
|
4
|
+
- Some changes to the way explicit interface methods are implemented to support WPF databinding.
|
5
|
+
|
6
|
+
2.2.0 Beta 1 (2009-12-04)
|
7
|
+
=========================
|
8
|
+
- Fixed DYNPROXY-ISSUE-120: Add logging to DynamicProxy.
|
9
|
+
Introduced basic logging for cache hit/miss, methods that cannot be intercepted, and overriding Equals/GetHashCode.
|
10
|
+
- Applied patch from James Curran fixing DYNPROXY-ISSUE-124: "InterfaceProxyWithoutTargetGenerator ctor missing selector parameter".
|
11
|
+
- Fixed DYNPROXY-ISSUE-105: Invocation types should be cached and shared among proxy implementations.
|
12
|
+
- BREAKING CHANGE - implemented DYNPROXY-ISSUE-91: Allow CreateInterfaceProxyWithTargetInterface to be able to permanently change target.
|
13
|
+
- Fixed DYNPROXY-ISSUE-122: "interceptor selector should not affect caching"
|
14
|
+
- Fixed DYNPROXY-ISSUE-121: "proxy with target interface incorrectly forwards to mixins"
|
15
|
+
- Added ability to change proxy target on mixin methods on interface proxy with target interface
|
16
|
+
- Added generic overloads for CreateInterfaceProxyWithTargetInterface to make it consistent with other methods
|
17
|
+
- BREAKING CHANGE - changed behavior of invocation.MethodInvocationTarget to be more consistent.
|
18
|
+
- Fixed DYNPROXY-ISSUE-117: Fix BaseTypeForInterfaceProxy. Added checks for base type being null, not a class type, being sealed and not having
|
19
|
+
default accessible constructor.
|
20
|
+
- Fixed DYNPROXY-ISSUE-112: Reimplement DefaultAttributeAssembler to make use of CustomAttributeData to avoid exceptions on unreplicable attributes.
|
21
|
+
- Fixed DYNPROXY-ISSUE-118: Can't proxy remoting transparent interface proxies.
|
22
|
+
- Fixed DYNPROXY-ISSUE-94: CreateProxyWithTarget fails if you use ProxyGenerationHook
|
23
|
+
- Fixed DYNPROXY-ISSUE-89: Proxy generation fails when IProxyGenerationHook chooses not to proxy mixin method
|
24
|
+
- Improved (a lot) range of supported scenarios, especially around generics.
|
25
|
+
- Improved exception messages in exceptions thrown at users, with short explanation of what they may have done wrong and how to fix it.
|
26
|
+
- Fixed DYNPROXY-ISSUE-113: AbstractTypeEmitter can now be used to emit interfaces
|
27
|
+
- Fixed DYNPROXY-ISSUE-108: Obtaining replicated custom attributes on proxy may fail when property setter throws exception on default value
|
28
|
+
- Moved custom attribute replication from CustomAttributeUtil to new interface - IAttributeDisassembler
|
29
|
+
- Exposed IAttributeDisassembler via ProxyGenerationOptions, so that users can plug their implementation for some convoluted scenarios.
|
30
|
+
- Fixed DYNPROXY-ISSUE-106: Proxying COM interfaces produces invalid proxies
|
31
|
+
- Change in behavior - interfaces are now implemented explicitly (except for class proxy, when class implements the member virtually)
|
32
|
+
- Fixed DYNPROXY-ISSUE-96: Implement order of precenence.
|
33
|
+
- Interface proxy now can proxy explicit interface implementation
|
34
|
+
- Fixed DYNPROXY-ISSUE-103: Proxy with interfaces having methods with identical signature is invalid
|
35
|
+
- Fixed DYNPROXY-ISSUE-102: Intercept non-virtual interface implementation
|
36
|
+
- Fixed DYNPROXY-ISSUE-100: Additional interfaces on proxy with target interface can cause stack overflow. Now a check is performed and if proxy
|
37
|
+
is the target of invocation, or the target is null an exception is thrown.
|
38
|
+
- Changed behavior of interface proxies with target interface (all interface proxies actually, but the change in behavior is visible in proxies
|
39
|
+
with target interface). Now the target is being casted using 'as' operator to the target interface of invocation, so if the type of target object
|
40
|
+
implements additional interfaces invocation target will be set to the proxy target, and to null otherwise. This is consisted with how interface
|
41
|
+
proxies with target work.
|
42
|
+
- Fixed bug reported by Jos� F. Romaniello - can not assign new target to interface proxy with target interface, in certain scenarios:
|
43
|
+
http://groups.google.com/group/castle-project-users/browse_thread/thread/2e507f47dbb831f1
|
44
|
+
- Applied Krzysztof Kozmic's clean up patch with some minor changes
|
45
|
+
(http://groups.google.com/group/castle-project-devel/browse_thread/thread/853fa870326f7f71/9237bb890ca6dab7)
|
46
|
+
- Moved MethodInfos of AbstractInvocation methods to InvocationMethods class, where all the other methods are.
|
47
|
+
- Extracted MethodInfos obtained inline to their own classes in Castle.DynamicProxy.Tokens namespace. This should
|
48
|
+
improve performance a little bit.
|
49
|
+
- Removed two ctors from AbstractInvocation (that didn't have interfMethod parameter).
|
50
|
+
- Updated generated proxies to call other two Invocation ctors.
|
51
|
+
- Some tidying up in BaseProxyGenerator to remove duplication after updating calls to Invocation ctors.
|
52
|
+
- Removed collecting and generating tokenCaches for System.Object methods, since we never use these anyway.
|
53
|
+
- Removed redundant casts in code.
|
54
|
+
- Changed code using non-generic collections to use their generic conterparts.
|
55
|
+
- Some more minor tidying up.
|
56
|
+
- Improved exception message when can not instantiate class proxy due to invalid arguments.
|
57
|
+
- Reverted changes introduced in fix for DYNPROXY-ISSUE-97 for the constructor issue. It actually is an issue with params object[] which is confusing
|
58
|
+
and can lead to errors like the one reported, and the fix was inconsistent with the other overload that had arguments passed as explicit object[]
|
59
|
+
and could break the other overload in some scenarios.
|
60
|
+
- Marked the overload of CreateClassProxy having params object[] as obsolete
|
61
|
+
- Introduced another overload that takes constructor arguments as explicit array, and interceptors as params IInterceptor[] which is the pattern
|
62
|
+
for all other overloads anyway.
|
63
|
+
- Fixed DYNPROXY-ISSUE-99: "Generated proxy class has no namespace", which due to a bug in WPF caused issues with databinding. Now proxies are in
|
64
|
+
namespace Castle.Proxies.
|
65
|
+
- Fixed DYNPROXY-97: This issue are actually three separate bugs:
|
66
|
+
First relates to the improper handling of types with generic methods having parameters being an array of generic type of T
|
67
|
+
Second was related to improper handing of hierarchy of generic constraints, but it seems Fabian's fix to GenericUtil fixed that earlier.
|
68
|
+
Third issue was related to improper handing of certain kinds of constructor arguments passed to class proxy generator.
|
69
|
+
- Fixed DYNPROXY-90: "DP2: Inherited interfaces w/ target does not to work"
|
70
|
+
- Fixed DYNPROXY-88: "proxy generation fail when multiple interfaces have common base interface"
|
71
|
+
They both were actually special cases of one issue with invalid collection of interface members.
|
72
|
+
- Fixed DYNPROXY-92: "Proxy fails when creating a Proxy for certain Generic signatures"
|
73
|
+
The problem was that GenericUtil.cs wrongfully copied generic arguments whose constraints referenced the proxied method without adjusting those
|
74
|
+
constraints.
|
75
|
+
|
76
|
+
2.1.0 (2009-05-04)
|
77
|
+
==================
|
78
|
+
- Fixed DYNPROXY-87: "Mixin takes precedence over target object"
|
79
|
+
changed DP to throw exceptions when two mixins implement the same interface or a mixin implements the same interface as its target class/object
|
80
|
+
|
81
|
+
- Applied Krzysztof Kozmic's patch improving the XML documentation of IInterceptorSelector
|
82
|
+
and IProxyGenerationHook.
|
83
|
+
|
84
|
+
2.1.0 RC1 (2009-03-10)
|
85
|
+
======================
|
86
|
+
- Applied Krzysztof Kozmic's patch improving the XML documentation and parameter names of IProxyBuilder, DefaultProxyBuilder and ProxyGenerator.
|
87
|
+
|
88
|
+
- Applied Krzysztof Kozmic's patch heavily improving the XML documentation of ProxyGenerator.
|
89
|
+
|
90
|
+
- Fixed DYNPROXY-ISSUE-84: "UseSingleInterfaceProxy on ProxyGenerationOptions is never used and should be removed"
|
91
|
+
|
92
|
+
- Fixed DYNPROXY-ISSUE-58/DYNPROXY-ISSUE-77: "Inherited interface seems not to work"
|
93
|
+
using Dimitri Goethals' test case and Ayende Rahien/Andrey Shchekin's patch.
|
94
|
+
|
95
|
+
- Fixed DYNPROXY-ISSUE-52: "DynamicProxy 1.1.5 doesn't work on Medium Trust"
|
96
|
+
uses the assembly's fullname instead of calling GetName()
|
97
|
+
|
98
|
+
- Fixed DYNPROXY-ISSUE-82: "Not allow generics & NoGeneric methods with same signature"
|
99
|
+
using Fabio Maulo's test case and Krzysztof Kozmic patch.
|
100
|
+
|
101
|
+
- Applied Neil Bourgeois's patch fixing DYNPROXY-ISSUE-78
|
102
|
+
"Custom attributes of virtual properties absent on proxy"
|
103
|
+
|
104
|
+
- Applied Craig Vermeer's patch fixing an issue with generating default constructors for DYNPROXY-ISSUE-81
|
105
|
+
"No Default Constructor in generated Class Proxy"
|
106
|
+
|
107
|
+
- Added support for IInterceptorSelector (patch provided by Krzysztof Kozmic).
|
108
|
+
- Removed ProxyGenerationOptions.UseSelector.
|
109
|
+
|
110
|
+
- Added support for generic methods when specifying additional interfaces to CreateInterfaceProxyWithoutTarget (reported by Craig Neuwirth, cause
|
111
|
+
found by Krzysztof Kozmic)
|
112
|
+
|
113
|
+
- Added support for provide additional interfaces for target interface proxies.
|
114
|
+
|
115
|
+
- Added workarounds for dictionary deserialization scenarios (reported by Gr�gory C�let)
|
116
|
+
|
117
|
+
- Fixed mixin-related bug with serialization (per Rogelio again)
|
118
|
+
- Made interface proxies without target and with target interface support mixins
|
119
|
+
|
120
|
+
- Fixed ProxyGenerationOptions equality issues with ordering and different instances of the same mixin types (thanks for finding
|
121
|
+
the bug, Rogelio)
|
122
|
+
|
123
|
+
- Readded mixin support (via Rogelio J. Baucells)
|
124
|
+
|
125
|
+
- ClassEmitter now supports emitting fields with specific attributes
|
126
|
+
|
127
|
+
- Added a load API to ModuleScope
|
128
|
+
- SaveAssembly now serializes the cache keys together with the generated types
|
129
|
+
|
130
|
+
- Fixed test issue - PEVerify is now called with a quoted assembly path (to allow for spaces in the path)
|
131
|
+
- Fixed test annoyance - PEVerify is now not called in a separate window
|
132
|
+
- Changed PersistentProxyBuilder behavior - SaveAssembly is not called by the class generators any more, instead PersistentProxyBuilder.SaveAssemblies
|
133
|
+
must be used. This allows the proxy builder to save multiple proxies at the same time. Test cases have been adapted.
|
134
|
+
|
135
|
+
- Fixed issues with CacheKey.Equals and ProxyGenerationOptions.Equals/GetHashCode
|
136
|
+
- Added a way to set and retrieve the ModuleScope used by ProxyObjectReference for proxy deserialization; proxies can now be deserialized with
|
137
|
+
the same ModuleScope used by the application (DYNPROXY-71)
|
138
|
+
|
139
|
+
- Made BasePEVerifyTestCase only check those assemblies that were actually generated in the test case, see DYNPROXY-68
|
140
|
+
- Fixed bug with protected internal constructors, see DYNPROXY-66/DYNPROXY-67
|
141
|
+
- Fixed test cases not using the ProxyGenerator supplied by BasePEVerifyTestCase, see DYNPROXY-69
|
142
|
+
|
143
|
+
- Added StrongNameUtil, which provides methods for checking whether an assembly is signed/a type comes from a signed assembly
|
144
|
+
- Added an additional constructor overload to ClassEmitter, allowing to force it to use an unsigned assembly
|
145
|
+
|
146
|
+
- Fixed a bug in ModuleScope: SaveAssembly tried to delete from the current directory if a file with a matching name existed, not from the target
|
147
|
+
directory
|
148
|
+
|
149
|
+
- Applied Pawel Pabich's suggestion fixing DYNPROXY-65
|
150
|
+
"OpCodeUtil.GetUnderlyingTypeOfEnum doesn't handle unsigned integers"
|
151
|
+
|
152
|
+
- Fixed bug in ArgumentReference occurring when emitting static methods
|
153
|
+
|
154
|
+
- Removed ClsCompliant(false) from all the public types in DynamicProxy
|
155
|
+
|
156
|
+
- Added constructors to ClassEmitter, removed "serializable" ctor parameter, it wasn't used
|
157
|
+
|
158
|
+
- Fixed bug in ModuleScope, see DYNPROXY-64
|
159
|
+
|
160
|
+
- Fixed bug in LoadArrayElementExpression, see DYNPROXY-57
|
161
|
+
|
162
|
+
- Changed signing behavior for generated assembly, assembly is now only signed if all involved types (base type, interfaces) are also signed
|
163
|
+
|
164
|
+
- Documented ModuleScope, added friendlier API for saving assemblies, added tests for ModuleScope, see DYNPROXY-55
|
165
|
+
|
166
|
+
- Applied Adam Tybor's patch fixing DYNPROXY-63
|
167
|
+
"ProxyType not included in CacheKey"
|
168
|
+
|
169
|
+
- Reimplemented serialization of ProxyGenerationOptions, see revision 3803, DYNPROXY-59
|
170
|
+
|
171
|
+
- Added method signature filtering to MethodFinder (see MethodSignatureComparer) because there were
|
172
|
+
still cases triggering duplicate methods
|
173
|
+
|
174
|
+
- Reimplemented serialization without default constructors, see revision 3725, DYNPROXY-53
|
175
|
+
- Reimplemented serialization with delegates/events, see revision 3751, DYNPROXY-56
|
176
|
+
|
177
|
+
- Renamed InterfaceProxyGeneratorWithoutTarget to InterfaceProxyWithoutTargetGenerator
|
178
|
+
|
179
|
+
- Fixed DYNPROXY-62
|
180
|
+
"Some tests in MethodFinderTestCase failed because of culture specific exception messages"
|
181
|
+
|
182
|
+
- Implemented cache for System.Type.GetMethods() in order to avoid triggering the duplicate methods bug
|
183
|
+
|
184
|
+
- Applied Adam Tybor's patch fixing DYNPROXY-61
|
185
|
+
"Need GetInterceptors from IProxyTargetAccessor back for NHibernate Trunk"
|
186
|
+
|
187
|
+
- Disabled replication of internal constructors on class proxies.
|
188
|
+
|
189
|
+
- Moved the UseSingleInterfaceProxy from Core.ComponentModel to ProxyGeneratorOptions.
|
190
|
+
|
191
|
+
- Applied Lee Henson's patch fixing generic parameter definitions
|
192
|
+
|
193
|
+
- Applied Jacob Lewallen's patch that introduces ProxyInterfaceWithTargetInterface
|
194
|
+
Quoting
|
195
|
+
|
196
|
+
"I've introduced a new "mode" that is
|
197
|
+
ProxyInterfaceWithTargetInterface, that uses the given interface as
|
198
|
+
the target type, rather than the type of the target (it asserts the
|
199
|
+
target implements the interface) All other modes should remain the
|
200
|
+
same.
|
201
|
+
|
202
|
+
"In this scenario, the IInvocation will also implement
|
203
|
+
IChangeProxyTarget, which can then be used to change the proxy target
|
204
|
+
to another implementation of the target interface."
|
205
|
+
|
206
|
+
- Added support for events
|
207
|
+
|
208
|
+
- Fixed DYNPROXY-43
|
209
|
+
"DP2 : Missing ParameterInfo 'Name' for Proxied methods"
|
210
|
+
|
211
|
+
- Fixed DYNPROXY-41
|
212
|
+
"Invalid state exception on DP2"
|
213
|
+
|
214
|
+
- Fixed DYNPROXY-39
|
215
|
+
"Deadlock in DynamicProxy2"
|
216
|
+
|
217
|
+
- Fixed DYNPROXY-28
|
218
|
+
"Virtual methods calls from constructors are not working"
|
219
|
+
|
220
|
+
- Fixed DYNPROXY-27
|
221
|
+
"Support for non-parameterless constructors"
|
222
|
+
|
223
|
+
- Fixed DYNPROXY-25
|
224
|
+
"Chars returns are not properly configured"
|
225
|
+
|
226
|
+
- Fixed DYNPROXY-24
|
227
|
+
"DynamicProxy2: missing locks"
|
228
|
+
|
229
|
+
- Fixed DYNPROXY-34
|
230
|
+
"Cant proxy generic interfaces"
|
231
|
+
|
232
|
+
Alpha Version 1.0.0.0
|
233
|
+
=====================
|
234
|
+
- First release
|
Binary file
|
@@ -4,42 +4,42 @@
|
|
4
4
|
<name>Castle.DynamicProxy2</name>
|
5
5
|
</assembly>
|
6
6
|
<members>
|
7
|
-
<member name="
|
7
|
+
<member name="M:Castle.DynamicProxy.Contributors.MembersCollector.IsAccessible(System.Reflection.MethodBase)">
|
8
8
|
<summary>
|
9
|
-
|
10
|
-
ByRef and provides indirect load/store support.
|
9
|
+
Checks if the method is public or protected.
|
11
10
|
</summary>
|
11
|
+
<param name="method"></param>
|
12
|
+
<returns></returns>
|
12
13
|
</member>
|
13
|
-
<member name="
|
14
|
+
<member name="M:Castle.DynamicProxy.Contributors.MembersCollector.AcceptMethod(System.Reflection.MethodInfo,System.Boolean,Castle.DynamicProxy.IProxyGenerationHook)">
|
14
15
|
<summary>
|
15
|
-
|
16
|
+
Performs some basic screening and invokes the <see cref="T:Castle.DynamicProxy.IProxyGenerationHook"/>
|
17
|
+
to select methods.
|
16
18
|
</summary>
|
19
|
+
<param name="method"></param>
|
20
|
+
<param name="onlyVirtuals"></param>
|
21
|
+
<param name="hook"></param>
|
22
|
+
<returns></returns>
|
17
23
|
</member>
|
18
|
-
<member name="T:Castle.DynamicProxy.
|
24
|
+
<member name="T:Castle.DynamicProxy.Contributors.ITypeContributor">
|
19
25
|
<summary>
|
20
|
-
|
26
|
+
Interface describing elements composing generated type
|
21
27
|
</summary>
|
22
28
|
</member>
|
23
|
-
<member name="
|
29
|
+
<member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.IndirectReference">
|
24
30
|
<summary>
|
25
|
-
|
26
|
-
|
27
|
-
a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
|
28
|
-
b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
|
31
|
+
Wraps a reference that is passed
|
32
|
+
ByRef and provides indirect load/store support.
|
29
33
|
</summary>
|
30
34
|
</member>
|
31
|
-
<member name="
|
35
|
+
<member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewArrayExpression">
|
32
36
|
<summary>
|
33
|
-
|
34
|
-
Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
|
35
|
-
we can convert it.
|
37
|
+
Summary description for NewArrayExpression.
|
36
38
|
</summary>
|
37
39
|
</member>
|
38
|
-
<member name="
|
40
|
+
<member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.ReferencesToObjectArrayExpression">
|
39
41
|
<summary>
|
40
|
-
|
41
|
-
if the value is passed as string we call to string (should help with converting),
|
42
|
-
otherwise, we use the value as is (enums, integer, etc).
|
42
|
+
|
43
43
|
</summary>
|
44
44
|
</member>
|
45
45
|
<member name="T:Castle.DynamicProxy.Generators.Emitters.LdcOpCodesDictionary">
|
@@ -103,161 +103,138 @@
|
|
103
103
|
for the type of primitive value to be stored indirectly.
|
104
104
|
</summary>
|
105
105
|
</member>
|
106
|
-
<member name="
|
107
|
-
<summary>
|
108
|
-
Base class that exposes the common functionalities
|
109
|
-
to proxy generation.
|
110
|
-
</summary>
|
111
|
-
<remarks>
|
112
|
-
TODO:
|
113
|
-
- Add tests and fixes for 'leaking this' problem
|
114
|
-
</remarks>
|
115
|
-
</member>
|
116
|
-
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GetProxyTargetReference">
|
106
|
+
<member name="M:Castle.DynamicProxy.Generators.Emitters.TypeUtil.GetAllInterfaces(System.Type[])">
|
117
107
|
<summary>
|
118
|
-
|
108
|
+
Returns list of all unique interfaces implemented given types, including their base interfaces.
|
119
109
|
</summary>
|
110
|
+
<param name="types"></param>
|
120
111
|
<returns></returns>
|
121
112
|
</member>
|
122
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
113
|
+
<member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.HandleError(System.Type,System.Exception)">
|
123
114
|
<summary>
|
124
|
-
|
125
|
-
state with <see cref="T:Castle.Core.Interceptor.StandardInterceptor"/> just to make it non-null.
|
126
|
-
<para>
|
127
|
-
This constructor is important to allow proxies to be XML serializable
|
128
|
-
</para>
|
129
|
-
</summary>
|
130
|
-
</member>
|
131
|
-
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.BuildInvocationNestedType(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,Castle.DynamicProxy.Generators.ConstructorVersion)">
|
132
|
-
<summary>
|
133
|
-
If callbackMethod is null the InvokeOnTarget implementation
|
134
|
-
is just the code to throw an exception
|
115
|
+
Handles error during disassembly process
|
135
116
|
</summary>
|
136
|
-
<param name="
|
137
|
-
<param name="
|
138
|
-
<
|
139
|
-
<param name="methodInfo"></param>
|
140
|
-
<param name="callbackMethod"></param>
|
141
|
-
<param name="version"></param>
|
142
|
-
<returns></returns>
|
117
|
+
<param name="attributeType">Type of the attribute being disassembled</param>
|
118
|
+
<param name="exception">Exception thrown during the process</param>
|
119
|
+
<returns>usually null, or (re)throws the exception</returns>
|
143
120
|
</member>
|
144
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
121
|
+
<member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.InitializeConstructorArgs(System.Type,System.Attribute,System.Object[],System.Reflection.ParameterInfo[])">
|
145
122
|
<summary>
|
146
|
-
|
147
|
-
|
123
|
+
Here we try to match a constructor argument to its value.
|
124
|
+
Since we can't get the values from the assembly, we use some heuristics to get it.
|
125
|
+
a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
|
126
|
+
b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
|
148
127
|
</summary>
|
149
|
-
<param name="emitter"></param>
|
150
|
-
<param name="targetType"></param>
|
151
|
-
<param name="targetForInvocation"></param>
|
152
|
-
<param name="methodInfo"></param>
|
153
|
-
<param name="callbackMethod"></param>
|
154
|
-
<param name="version"></param>
|
155
|
-
<param name="allowChangeTarget">If true the invocation will implement the IChangeProxyTarget interface</param>
|
156
|
-
<returns></returns>
|
157
128
|
</member>
|
158
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
129
|
+
<member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ReplaceIfBetterMatch(System.Reflection.ParameterInfo,System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)">
|
159
130
|
<summary>
|
160
|
-
|
161
|
-
|
131
|
+
We have the following rules here.
|
132
|
+
Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
|
133
|
+
we can convert it.
|
162
134
|
</summary>
|
163
|
-
<param name="targetFieldType"></param>
|
164
|
-
<param name="nested"></param>
|
165
|
-
<param name="targetField"></param>
|
166
|
-
<param name="version"></param>
|
167
135
|
</member>
|
168
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
136
|
+
<member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ConvertValue(System.Object,System.Type)">
|
169
137
|
<summary>
|
170
|
-
|
171
|
-
|
138
|
+
Attributes can only accept simple types, so we return null for null,
|
139
|
+
if the value is passed as string we call to string (should help with converting),
|
140
|
+
otherwise, we use the value as is (enums, integer, etc).
|
172
141
|
</summary>
|
173
142
|
</member>
|
174
|
-
<member name="
|
143
|
+
<member name="T:Castle.DynamicProxy.Generators.BaseProxyGenerator">
|
175
144
|
<summary>
|
176
|
-
|
177
|
-
to
|
145
|
+
Base class that exposes the common functionalities
|
146
|
+
to proxy generation.
|
178
147
|
</summary>
|
179
|
-
<param name="method"></param>
|
180
|
-
<param name="onlyVirtuals"></param>
|
181
|
-
<returns></returns>
|
182
148
|
</member>
|
183
|
-
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.
|
149
|
+
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GenerateParameterlessConstructor(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,Castle.DynamicProxy.Generators.Emitters.SimpleAST.FieldReference)">
|
184
150
|
<summary>
|
185
|
-
|
151
|
+
Generates a parameters constructor that initializes the proxy
|
152
|
+
state with <see cref="T:Castle.Core.Interceptor.StandardInterceptor"/> just to make it non-null.
|
153
|
+
<para>
|
154
|
+
This constructor is important to allow proxies to be XML serializable
|
155
|
+
</para>
|
186
156
|
</summary>
|
187
|
-
<param name="method"></param>
|
188
|
-
<returns></returns>
|
189
157
|
</member>
|
190
|
-
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.
|
158
|
+
<member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.AddMappingNoCheck(System.Type,Castle.DynamicProxy.Contributors.ITypeContributor,System.Collections.Generic.IDictionary{System.Type,Castle.DynamicProxy.Contributors.ITypeContributor})">
|
191
159
|
<summary>
|
192
|
-
|
193
|
-
but there are some special cases where the attributes means
|
194
|
-
something to the CLR, where they should be skipped.
|
160
|
+
It is safe to add mapping (no mapping for the interface exists)
|
195
161
|
</summary>
|
162
|
+
<param name="implementer"></param>
|
163
|
+
<param name="interface"></param>
|
164
|
+
<param name="mapping"></param>
|
196
165
|
</member>
|
197
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
166
|
+
<member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Reflection.MemberInfo,System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
|
198
167
|
<summary>
|
199
|
-
|
200
|
-
one that should generate a new vtable slot.
|
168
|
+
Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class.
|
201
169
|
</summary>
|
170
|
+
<param name="target">Target element. This is either target type or target method for invocation types.</param>
|
171
|
+
<param name="type">The type of the proxy. This is base type for invocation types.</param>
|
172
|
+
<param name="interfaces">The interfaces.</param>
|
173
|
+
<param name="options">The options.</param>
|
202
174
|
</member>
|
203
175
|
<member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
|
204
176
|
<summary>
|
205
177
|
Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class.
|
206
178
|
</summary>
|
207
|
-
<param name="
|
179
|
+
<param name="target">Type of the target.</param>
|
208
180
|
<param name="interfaces">The interfaces.</param>
|
209
181
|
<param name="options">The options.</param>
|
210
182
|
</member>
|
211
|
-
<member name="
|
183
|
+
<member name="M:Castle.DynamicProxy.Generators.InvocationTypeGenerator.GetCtorArgumentsAndBaseCtorToCall(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Reflection.ConstructorInfo@)">
|
212
184
|
<summary>
|
213
|
-
|
185
|
+
Generates the constructor for the class that extends
|
186
|
+
<see cref="T:Castle.DynamicProxy.AbstractInvocation"/>
|
214
187
|
</summary>
|
188
|
+
<param name="targetFieldType"></param>
|
189
|
+
<param name="proxyGenerationOptions"></param>
|
190
|
+
<param name="baseConstructor"></param>
|
215
191
|
</member>
|
216
|
-
<member name="
|
192
|
+
<member name="T:Castle.DynamicProxy.Generators.ClassProxyGenerator">
|
217
193
|
<summary>
|
218
|
-
|
194
|
+
|
219
195
|
</summary>
|
220
|
-
<param name="emitter">The emitter.</param>
|
221
|
-
<param name="addMethod">The add method.</param>
|
222
|
-
<param name="removeMethod">The remove method.</param>
|
223
|
-
<param name="attributes">The attributes.</param>
|
224
196
|
</member>
|
225
|
-
<member name="T:Castle.DynamicProxy.Generators.
|
197
|
+
<member name="T:Castle.DynamicProxy.Generators.INamingScope">
|
226
198
|
<summary>
|
227
|
-
|
199
|
+
Represents the scope of uniquenes of names for types and their members
|
228
200
|
</summary>
|
229
201
|
</member>
|
230
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
202
|
+
<member name="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)">
|
231
203
|
<summary>
|
232
|
-
|
204
|
+
Gets a unique name based on <paramref name="suggestedName"/>
|
233
205
|
</summary>
|
234
|
-
<param name="
|
235
|
-
<
|
236
|
-
|
237
|
-
<
|
206
|
+
<param name="suggestedName">Name suggested by the caller</param>
|
207
|
+
<returns>Unique name based on <paramref name="suggestedName"/>.</returns>
|
208
|
+
<remarks>
|
209
|
+
Implementers should provide name as closely resembling <paramref name="suggestedName"/> as possible.
|
210
|
+
Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix.
|
211
|
+
Implementers must return deterministic names, that is when <see cref="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)"/> is called twice
|
212
|
+
with the same suggested name, the same returned name should be provided each time. Non-deterministic return
|
213
|
+
values, like appending random suffices will break serialization of proxies.
|
214
|
+
</remarks>
|
238
215
|
</member>
|
239
|
-
<member name="M:Castle.DynamicProxy.Generators.
|
216
|
+
<member name="M:Castle.DynamicProxy.Generators.INamingScope.SafeSubScope">
|
240
217
|
<summary>
|
241
|
-
|
242
|
-
|
218
|
+
Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision
|
219
|
+
with enclosing scope, or other subscopes is possible.
|
243
220
|
</summary>
|
244
|
-
<
|
245
|
-
<param name="targetType"></param>
|
246
|
-
<returns></returns>
|
221
|
+
<returns>New naming scope.</returns>
|
247
222
|
</member>
|
248
|
-
<member name="
|
223
|
+
<member name="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator">
|
249
224
|
<summary>
|
250
|
-
|
225
|
+
|
251
226
|
</summary>
|
252
|
-
<param name="methodInfo"></param>
|
253
|
-
<param name="methodOnInterface"></param>
|
254
|
-
<returns>True if the methods are the same.</returns>
|
255
227
|
</member>
|
256
|
-
<member name="
|
228
|
+
<member name="M:Castle.DynamicProxy.Generators.MetaEvent.#ctor(System.String,System.Type,System.Type,Castle.DynamicProxy.Generators.MetaMethod,Castle.DynamicProxy.Generators.MetaMethod,System.Reflection.EventAttributes)">
|
257
229
|
<summary>
|
258
|
-
|
259
|
-
which generator it should use
|
230
|
+
Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.MetaEvent"/> class.
|
260
231
|
</summary>
|
232
|
+
<param name="name">The name.</param>
|
233
|
+
<param name="declaringType">Type declaring the original event being overriten, or null.</param>
|
234
|
+
<param name="eventDelegateType"></param>
|
235
|
+
<param name="adder">The add method.</param>
|
236
|
+
<param name="remover">The remove method.</param>
|
237
|
+
<param name="attributes">The attributes.</param>
|
261
238
|
</member>
|
262
239
|
<member name="T:Castle.DynamicProxy.Generators.MethodFinder">
|
263
240
|
<summary>
|
@@ -292,6 +269,41 @@
|
|
292
269
|
might use more than one scope at the same time), <see cref="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"/> uses a dedicated scope instance for deserializing proxy
|
293
270
|
types. This instance can be reset and set to a specific value via <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.ResetScope"/> and <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.SetScope(Castle.DynamicProxy.ModuleScope)"/>.</value>
|
294
271
|
</member>
|
272
|
+
<member name="T:Castle.DynamicProxy.Tokens.InvocationMethods">
|
273
|
+
<summary>
|
274
|
+
Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:Castle.DynamicProxy.AbstractInvocation"/> class.
|
275
|
+
</summary>
|
276
|
+
</member>
|
277
|
+
<member name="T:Castle.DynamicProxy.Tokens.SerializationInfoMethods">
|
278
|
+
<summary>
|
279
|
+
Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:System.Runtime.Serialization.SerializationInfo"/> class.
|
280
|
+
</summary>
|
281
|
+
</member>
|
282
|
+
<member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Bool">
|
283
|
+
<summary>
|
284
|
+
<see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Boolean)"/>
|
285
|
+
</summary>
|
286
|
+
</member>
|
287
|
+
<member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Int32">
|
288
|
+
<summary>
|
289
|
+
<see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Int32)"/>
|
290
|
+
</summary>
|
291
|
+
</member>
|
292
|
+
<member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Object">
|
293
|
+
<summary>
|
294
|
+
<see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Object)"/>
|
295
|
+
</summary>
|
296
|
+
</member>
|
297
|
+
<member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.GetValue">
|
298
|
+
<summary>
|
299
|
+
<see cref="M:System.Runtime.Serialization.SerializationInfo.GetValue(System.String,System.Type)"/>
|
300
|
+
</summary>
|
301
|
+
</member>
|
302
|
+
<member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.SetType">
|
303
|
+
<summary>
|
304
|
+
<see cref="M:System.Runtime.Serialization.SerializationInfo.SetType(System.Type)"/>
|
305
|
+
</summary>
|
306
|
+
</member>
|
295
307
|
<member name="T:Castle.DynamicProxy.IProxyGenerationHook">
|
296
308
|
<summary>
|
297
309
|
Used during the target type inspection process. Implementors have a chance to customize the
|
@@ -323,6 +335,24 @@
|
|
323
335
|
Invoked by the generation process to notify that the whole process has completed.
|
324
336
|
</summary>
|
325
337
|
</member>
|
338
|
+
<member name="M:Castle.DynamicProxy.AttributeUtil.AddDisassembler``1(Castle.DynamicProxy.IAttributeDisassembler)">
|
339
|
+
<summary>
|
340
|
+
Registers custom disassembler to handle disassembly of specified type of attributes.
|
341
|
+
</summary>
|
342
|
+
<typeparam name="TAttribute">Type of attributes to handle</typeparam>
|
343
|
+
<param name="disassembler">Disassembler converting existing instances of Attributes to CustomAttributeBuilders</param>
|
344
|
+
<remarks>
|
345
|
+
When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type,
|
346
|
+
and if none is found, it'll use the <see cref="P:Castle.DynamicProxy.AttributeUtil.FallbackDisassembler"/>.
|
347
|
+
</remarks>
|
348
|
+
</member>
|
349
|
+
<member name="M:Castle.DynamicProxy.AttributeUtil.ShouldSkipAttributeReplication(System.Type)">
|
350
|
+
<summary>
|
351
|
+
Attributes should be replicated if they are non-inheritable,
|
352
|
+
but there are some special cases where the attributes means
|
353
|
+
something to the CLR, where they should be skipped.
|
354
|
+
</summary>
|
355
|
+
</member>
|
326
356
|
<member name="T:Castle.DynamicProxy.CacheMappingsAttribute">
|
327
357
|
<summary>
|
328
358
|
Applied to the assemblies saved by <see cref="T:Castle.DynamicProxy.ModuleScope"/> in order to persist the cache data included in the persisted assembly.
|
@@ -369,6 +399,24 @@
|
|
369
399
|
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
|
370
400
|
<seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/>
|
371
401
|
</member>
|
402
|
+
<member name="M:Castle.DynamicProxy.IProxyBuilder.CreateClassProxyType(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
|
403
|
+
<summary>
|
404
|
+
Creates a proxy type for given <paramref name="classToProxy"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided.
|
405
|
+
</summary>
|
406
|
+
<param name="classToProxy">The class type to proxy.</param>
|
407
|
+
<param name="additionalInterfacesToProxy">Additional interface types to proxy.</param>
|
408
|
+
<param name="options">The proxy generation options.</param>
|
409
|
+
<returns>The generated proxy type.</returns>
|
410
|
+
<remarks>
|
411
|
+
Implementers should return a proxy type for the specified class and interfaces.
|
412
|
+
Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See <see cref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.)
|
413
|
+
</remarks>
|
414
|
+
<exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
|
415
|
+
<exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public.
|
416
|
+
Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
|
417
|
+
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
|
418
|
+
<seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/>
|
419
|
+
</member>
|
372
420
|
<member name="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithTarget(System.Type,System.Type[],System.Type,Castle.DynamicProxy.ProxyGenerationOptions)">
|
373
421
|
<summary>
|
374
422
|
Creates a proxy type that proxies calls to <paramref name="interfaceToProxy"/> members on <paramref name="targetType"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided.
|
@@ -424,6 +472,11 @@
|
|
424
472
|
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
|
425
473
|
<seealso cref="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetInterfaceGenerator"/>
|
426
474
|
</member>
|
475
|
+
<member name="P:Castle.DynamicProxy.IProxyBuilder.Logger">
|
476
|
+
<summary>
|
477
|
+
Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> logs to.
|
478
|
+
</summary>
|
479
|
+
</member>
|
427
480
|
<member name="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope">
|
428
481
|
<summary>
|
429
482
|
Gets the <see cref="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope"/> associated with this builder.
|
@@ -441,33 +494,6 @@
|
|
441
494
|
</summary>
|
442
495
|
<param name="scope">The module scope for generated proxy types.</param>
|
443
496
|
</member>
|
444
|
-
<member name="T:Castle.DynamicProxy.IInterceptorSelector">
|
445
|
-
<summary>
|
446
|
-
Provides an extension point that allows proxies to choose specific interceptors on
|
447
|
-
a per method basis.
|
448
|
-
</summary>
|
449
|
-
</member>
|
450
|
-
<member name="M:Castle.DynamicProxy.IInterceptorSelector.SelectInterceptors(System.Type,System.Reflection.MethodInfo,Castle.Core.Interceptor.IInterceptor[])">
|
451
|
-
<summary>
|
452
|
-
Selects the interceptors that should intercept calls to the given <paramref name="method"/>.
|
453
|
-
</summary>
|
454
|
-
<param name="type">The type declaring the method to intercept.</param>
|
455
|
-
<param name="method">The method that will be intercepted.</param>
|
456
|
-
<param name="interceptors">All interceptors registered with the proxy.</param>
|
457
|
-
<returns>An array of interceptors to invoke upon calling the <paramref name="method"/>.</returns>
|
458
|
-
<remarks>
|
459
|
-
This method is called only once per proxy instance, upon the first call to the
|
460
|
-
<paramref name="method"/>. Either an empty array or null are valid return values to indicate
|
461
|
-
that no interceptor should intercept calls to the method. Although it is not advised, it is
|
462
|
-
legal to return other <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations than these provided in
|
463
|
-
<paramref name="interceptors"/>. A better way to do this, is by passing all the required
|
464
|
-
interceptors to the appropriate method of <see cref="T:Castle.DynamicProxy.ProxyGenerator"/>. You can use this
|
465
|
-
method to influence the order in which interceptors will be called, by reordering the array.
|
466
|
-
Returning an array containing null references (Nothing in Visual Basic) is not legal,
|
467
|
-
and will result in a runtime exception.
|
468
|
-
</remarks>
|
469
|
-
<seealso cref="T:Castle.DynamicProxy.ProxyGenerationOptions"/>
|
470
|
-
</member>
|
471
497
|
<member name="M:Castle.DynamicProxy.InternalsHelper.IsInternalToDynamicProxy(System.Reflection.Assembly)">
|
472
498
|
<summary>
|
473
499
|
Determines whether this assembly has internals visible to dynamic proxy.
|
@@ -532,6 +558,18 @@
|
|
532
558
|
<param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
533
559
|
<param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
534
560
|
</member>
|
561
|
+
<member name="M:Castle.DynamicProxy.ModuleScope.#ctor(System.Boolean,Castle.DynamicProxy.Generators.INamingScope,System.String,System.String,System.String,System.String)">
|
562
|
+
<summary>
|
563
|
+
Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance
|
564
|
+
should be saved and what simple names are to be assigned to them.
|
565
|
+
</summary>
|
566
|
+
<param name="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
|
567
|
+
<param name="namingScope">Naming scope used to provide unique names to generated types and their members (usually via sub-scopes).</param>
|
568
|
+
<param name="strongAssemblyName">The simple name of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
569
|
+
<param name="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
570
|
+
<param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
571
|
+
<param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
|
572
|
+
</member>
|
535
573
|
<member name="M:Castle.DynamicProxy.ModuleScope.GetFromCache(Castle.DynamicProxy.Generators.CacheKey)">
|
536
574
|
<summary>
|
537
575
|
Returns a type from this scope's type cache, or null if the key cannot be found.
|
@@ -619,7 +657,7 @@
|
|
619
657
|
to avoid the performance hit associated with proxy generation.
|
620
658
|
</remarks>
|
621
659
|
</member>
|
622
|
-
<member name="P:Castle.DynamicProxy.ModuleScope.
|
660
|
+
<member name="P:Castle.DynamicProxy.ModuleScope.Lock">
|
623
661
|
<summary>
|
624
662
|
Users of this <see cref="T:Castle.DynamicProxy.ModuleScope"/> should use this lock when accessing the cache.
|
625
663
|
</summary>
|
@@ -726,11 +764,13 @@
|
|
726
764
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
727
765
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
728
766
|
<remarks>
|
767
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
768
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
729
769
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
730
770
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
731
771
|
</remarks>
|
732
772
|
</member>
|
733
|
-
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(
|
773
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
734
774
|
<summary>
|
735
775
|
Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
|
736
776
|
</summary>
|
@@ -747,6 +787,8 @@
|
|
747
787
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
748
788
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
749
789
|
<remarks>
|
790
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
791
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
750
792
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
751
793
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
752
794
|
</remarks>
|
@@ -770,6 +812,8 @@
|
|
770
812
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
771
813
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
772
814
|
<remarks>
|
815
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
816
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
773
817
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
774
818
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
775
819
|
</remarks>
|
@@ -794,6 +838,8 @@
|
|
794
838
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
795
839
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
796
840
|
<remarks>
|
841
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
842
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
797
843
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
798
844
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
799
845
|
</remarks>
|
@@ -818,6 +864,8 @@
|
|
818
864
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
819
865
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
820
866
|
<remarks>
|
867
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
868
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
821
869
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
822
870
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
823
871
|
</remarks>
|
@@ -843,6 +891,8 @@
|
|
843
891
|
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
844
892
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
845
893
|
<remarks>
|
894
|
+
This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
|
895
|
+
use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
|
846
896
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
847
897
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
848
898
|
</remarks>
|
@@ -871,6 +921,74 @@
|
|
871
921
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
872
922
|
</remarks>
|
873
923
|
</member>
|
924
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.Core.Interceptor.IInterceptor[])">
|
925
|
+
<summary>
|
926
|
+
Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
|
927
|
+
Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
|
928
|
+
</summary>
|
929
|
+
<typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam>
|
930
|
+
<param name="target">The target object, calls to which will be intercepted.</param>
|
931
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
932
|
+
<returns>
|
933
|
+
Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
|
934
|
+
</returns>
|
935
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
|
936
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
|
937
|
+
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
|
938
|
+
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
939
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
940
|
+
<remarks>
|
941
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
942
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
943
|
+
</remarks>
|
944
|
+
</member>
|
945
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
946
|
+
<summary>
|
947
|
+
Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
|
948
|
+
Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
|
949
|
+
</summary>
|
950
|
+
<typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam>
|
951
|
+
<param name="target">The target object, calls to which will be intercepted.</param>
|
952
|
+
<param name="options">The proxy generation options used to influence generated proxy type and object.</param>
|
953
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
954
|
+
<returns>
|
955
|
+
Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
|
956
|
+
</returns>
|
957
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
|
958
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
|
959
|
+
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
|
960
|
+
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
961
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
962
|
+
<remarks>
|
963
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
964
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
965
|
+
</remarks>
|
966
|
+
</member>
|
967
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.Core.Interceptor.IInterceptor[])">
|
968
|
+
<summary>
|
969
|
+
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
|
970
|
+
Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
|
971
|
+
</summary>
|
972
|
+
<param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param>
|
973
|
+
<param name="target">The target object, calls to which will be intercepted.</param>
|
974
|
+
<param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
|
975
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
976
|
+
<returns>
|
977
|
+
Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
|
978
|
+
</returns>
|
979
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
980
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
|
981
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
|
982
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
|
983
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception>
|
984
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception>
|
985
|
+
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
|
986
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
|
987
|
+
<remarks>
|
988
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
989
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
990
|
+
</remarks>
|
991
|
+
</member>
|
874
992
|
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
875
993
|
<summary>
|
876
994
|
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
|
@@ -931,11 +1049,12 @@
|
|
931
1049
|
<returns>
|
932
1050
|
Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object.
|
933
1051
|
</returns>
|
934
|
-
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/>
|
1052
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
|
935
1053
|
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
|
936
1054
|
<remarks>
|
937
1055
|
Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations.
|
938
1056
|
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
|
1057
|
+
As a result of that also at least one <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementation must be provided.
|
939
1058
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
940
1059
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
941
1060
|
</remarks>
|
@@ -959,17 +1078,37 @@
|
|
959
1078
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
960
1079
|
</remarks>
|
961
1080
|
</member>
|
1081
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
1082
|
+
<summary>
|
1083
|
+
Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on target object generated at runtime with given <paramref name="interceptors"/>.
|
1084
|
+
</summary>
|
1085
|
+
<typeparam name="TInterface">Type of the interface which will be proxied.</typeparam>
|
1086
|
+
<param name="options">The proxy generation options used to influence generated proxy type and object.</param>
|
1087
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1088
|
+
<returns>
|
1089
|
+
Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object.
|
1090
|
+
</returns>
|
1091
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
|
1092
|
+
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
|
1093
|
+
<remarks>
|
1094
|
+
Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations.
|
1095
|
+
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
|
1096
|
+
As a result of that also at least one <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementation must be provided.
|
1097
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1098
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1099
|
+
</remarks>
|
1100
|
+
</member>
|
962
1101
|
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.Core.Interceptor.IInterceptor)">
|
963
1102
|
<summary>
|
964
1103
|
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptor"/>.
|
965
1104
|
</summary>
|
966
1105
|
<param name="interfaceToProxy">Type of the interface which will be proxied.</param>
|
967
|
-
<param name="interceptor">The
|
1106
|
+
<param name="interceptor">The interceptors called during the invocation of proxied methods.</param>
|
968
1107
|
<returns>
|
969
1108
|
Object proxying calls to members of <paramref name="interfaceToProxy"/> type on generated target object.
|
970
1109
|
</returns>
|
971
1110
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
972
|
-
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/>
|
1111
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
|
973
1112
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception>
|
974
1113
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception>
|
975
1114
|
<remarks>
|
@@ -1020,6 +1159,26 @@
|
|
1020
1159
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1021
1160
|
</remarks>
|
1022
1161
|
</member>
|
1162
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
1163
|
+
<summary>
|
1164
|
+
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>.
|
1165
|
+
</summary>
|
1166
|
+
<param name="interfaceToProxy">Type of the interface which will be proxied.</param>
|
1167
|
+
<param name="options">The proxy generation options used to influence generated proxy type and object.</param>
|
1168
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1169
|
+
<returns>
|
1170
|
+
Object proxying calls to members of <paramref name="interfaceToProxy"/> on generated target object.
|
1171
|
+
</returns>
|
1172
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1173
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
|
1174
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception>
|
1175
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception>
|
1176
|
+
<remarks>
|
1177
|
+
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
|
1178
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1179
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1180
|
+
</remarks>
|
1181
|
+
</member>
|
1023
1182
|
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
1024
1183
|
<summary>
|
1025
1184
|
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>.
|
@@ -1052,27 +1211,26 @@
|
|
1052
1211
|
New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type.
|
1053
1212
|
</returns>
|
1054
1213
|
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception>
|
1055
|
-
<exception cref="T:System.
|
1214
|
+
<exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception>
|
1056
1215
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception>
|
1057
1216
|
<remarks>
|
1058
1217
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1059
1218
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1060
1219
|
</remarks>
|
1061
1220
|
</member>
|
1062
|
-
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(
|
1221
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
|
1063
1222
|
<summary>
|
1064
|
-
Creates proxy object intercepting calls to virtual members of type <
|
1223
|
+
Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>.
|
1065
1224
|
</summary>
|
1066
|
-
<
|
1225
|
+
<typeparam name="TClass">Type of class which will be proxied.</typeparam>
|
1226
|
+
<param name="options">The proxy generation options used to influence generated proxy type and object.</param>
|
1067
1227
|
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1068
1228
|
<returns>
|
1069
|
-
New object of type <
|
1229
|
+
New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type.
|
1070
1230
|
</returns>
|
1071
|
-
<exception cref="T:System.
|
1072
|
-
<exception cref="T:System.ArgumentException">Thrown when
|
1073
|
-
<exception cref="T:System.
|
1074
|
-
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
|
1075
|
-
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1231
|
+
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception>
|
1232
|
+
<exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception>
|
1233
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception>
|
1076
1234
|
<remarks>
|
1077
1235
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1078
1236
|
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
@@ -1091,7 +1249,7 @@
|
|
1091
1249
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1092
1250
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
|
1093
1251
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1094
|
-
<exception cref="T:System.
|
1252
|
+
<exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
|
1095
1253
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1096
1254
|
<remarks>
|
1097
1255
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
@@ -1111,7 +1269,67 @@
|
|
1111
1269
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1112
1270
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
|
1113
1271
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1114
|
-
<exception cref="T:System.
|
1272
|
+
<exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
|
1273
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1274
|
+
<remarks>
|
1275
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1276
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1277
|
+
</remarks>
|
1278
|
+
</member>
|
1279
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.Core.Interceptor.IInterceptor[])">
|
1280
|
+
<summary>
|
1281
|
+
Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
|
1282
|
+
</summary>
|
1283
|
+
<param name="classToProxy">Type of class which will be proxied.</param>
|
1284
|
+
<param name="options">The proxy generation options used to influence generated proxy type and object.</param>
|
1285
|
+
<param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param>
|
1286
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1287
|
+
<returns>
|
1288
|
+
New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
|
1289
|
+
</returns>
|
1290
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1291
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
|
1292
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1293
|
+
<exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
|
1294
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1295
|
+
<remarks>
|
1296
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1297
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1298
|
+
</remarks>
|
1299
|
+
</member>
|
1300
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Object[],Castle.Core.Interceptor.IInterceptor[])">
|
1301
|
+
<summary>
|
1302
|
+
Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
|
1303
|
+
</summary>
|
1304
|
+
<param name="classToProxy">Type of class which will be proxied.</param>
|
1305
|
+
<param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param>
|
1306
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1307
|
+
<returns>
|
1308
|
+
New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
|
1309
|
+
</returns>
|
1310
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1311
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
|
1312
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1313
|
+
<exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
|
1314
|
+
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1315
|
+
<remarks>
|
1316
|
+
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
1317
|
+
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
|
1318
|
+
</remarks>
|
1319
|
+
</member>
|
1320
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.Core.Interceptor.IInterceptor[])">
|
1321
|
+
<summary>
|
1322
|
+
Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
|
1323
|
+
</summary>
|
1324
|
+
<param name="classToProxy">Type of class which will be proxied.</param>
|
1325
|
+
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
|
1326
|
+
<returns>
|
1327
|
+
New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
|
1328
|
+
</returns>
|
1329
|
+
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1330
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
|
1331
|
+
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1332
|
+
<exception cref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramref name="classToProxy"/>.</exception>
|
1115
1333
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1116
1334
|
<remarks>
|
1117
1335
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
@@ -1132,7 +1350,7 @@
|
|
1132
1350
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1133
1351
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
|
1134
1352
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1135
|
-
<exception cref="T:System.
|
1353
|
+
<exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
|
1136
1354
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1137
1355
|
<remarks>
|
1138
1356
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
@@ -1154,7 +1372,7 @@
|
|
1154
1372
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1155
1373
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
|
1156
1374
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1157
|
-
<exception cref="T:System.
|
1375
|
+
<exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
|
1158
1376
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1159
1377
|
<remarks>
|
1160
1378
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
@@ -1177,7 +1395,7 @@
|
|
1177
1395
|
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
|
1178
1396
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
|
1179
1397
|
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
|
1180
|
-
<exception cref="T:System.
|
1398
|
+
<exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
|
1181
1399
|
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
|
1182
1400
|
<remarks>
|
1183
1401
|
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
|
@@ -1203,13 +1421,12 @@
|
|
1203
1421
|
<param name="options">The options for proxy generation process.</param>
|
1204
1422
|
<returns><see cref="T:System.Type"/> of proxy.</returns>
|
1205
1423
|
</member>
|
1206
|
-
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],
|
1424
|
+
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
|
1207
1425
|
<summary>
|
1208
1426
|
Creates the proxy type for interface proxy with target interface for given <paramref name="interfaceToProxy"/> interface, implementing given <paramref name="additionalInterfacesToProxy"/> on given <paramref name="targetType"/> and using provided <paramref name="options"/>.
|
1209
1427
|
</summary>
|
1210
1428
|
<param name="interfaceToProxy">The interface proxy type should implement.</param>
|
1211
1429
|
<param name="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param>
|
1212
|
-
<param name="targetType">Actual type that the proxy type will encompass.</param>
|
1213
1430
|
<param name="options">The options for proxy generation process.</param>
|
1214
1431
|
<returns><see cref="T:System.Type"/> of proxy.</returns>
|
1215
1432
|
</member>
|
@@ -1222,6 +1439,11 @@
|
|
1222
1439
|
<param name="options">The options for proxy generation process.</param>
|
1223
1440
|
<returns><see cref="T:System.Type"/> of proxy.</returns>
|
1224
1441
|
</member>
|
1442
|
+
<member name="P:Castle.DynamicProxy.ProxyGenerator.Logger">
|
1443
|
+
<summary>
|
1444
|
+
Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> log to.
|
1445
|
+
</summary>
|
1446
|
+
</member>
|
1225
1447
|
<member name="P:Castle.DynamicProxy.ProxyGenerator.ProxyBuilder">
|
1226
1448
|
<summary>
|
1227
1449
|
Gets the proxy builder instance used to generate proxy types.
|