forked from castleproject/Core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BreakingChanges.txt
71 lines (52 loc) · 3.06 KB
/
BreakingChanges.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
=== version 3.0
================================================================================================
change - Removed overloads of logging methods that were taking format string from ILogger and
ILogger and IExtendedLogger and didn't have word Format in their name.
For example:
void Error(string format, params object[] args); // was removed
void ErrorFormat(string format, params object[] args); //use this one instead
impact - low
fixability - medium
revision -
description - To minimize confusion and duplication those methods were removed.
fix - Use methods that have explicit "Format" word in their name and same signature.
================================================================================================
change - Removed WebLogger and WebLoggerFactory
impact - low
fixability - medium
revision -
description - To minimize management overhead the classes were removed so that only single
Client Profile version of Castle.Core can be distributed.
fix - You can use NLog or Log4Net web logger integration, or reuse implementation of existing
web logger and use it as a custom logger.
================================================================================================
change - Removed obsolete overload of ProxyGenerator.CreateClassProxy
impact - low
fixability - trivial
revision -
description - Deprecated overload of ProxyGenerator.CreateClassProxy was removed to keep the
method consistent with other methods and to remove confusion
fix - whenever removed overload was used, use one of the other overloads.
================================================================================================
change - IProxyGenerationHook.NonVirtualMemberNotification method was renamed
impact - high
fixability - easy
revision -
description - to accommodate class proxies with target method NonVirtualMemberNotification on
IProxyGenerationHook type was renamed to more accurate NonProxyableMemberNotification
since for class proxies with target not just methods but also fields and other member that
break the abstraction will be passed to this method.
fix - whenever NonVirtualMemberNotification is used/implemented change the method name to
NonProxyableMemberNotification. Implementors should also accommodate possibility that not
only MethodInfos will be passed as method's second parameter.
================================================================================================
change - DynamicProxy will now allow to intercept members of System.Object
impact - very low
fixability - easy
revision -
description - to allow scenarios like mocking of System.Object members, DynamicProxy will not
disallow proxying of these methods anymore. AllMethodsHook (default IProxyGenerationHook)
will still filter them out though.
fix - whenever custom IProxyGenerationHook is used, user should account for System.Object's
members being now passed to ShouldInterceptMethod and NonVirtualMemberNotification methods
and if neccessary update the code to handle them appropriately.