Skip to content

Commit de89312

Browse files
committed
Proper support for .NET 3.5
1 parent 2dc5ddd commit de89312

22 files changed

Lines changed: 21581 additions & 9 deletions

src/Documentation/Documentation.v3.5.shfbproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<RootNamespace>Documentation</RootNamespace>
1616
<Name>Documentation.v3.5</Name>
1717
<!-- SHFB properties -->
18-
<FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
18+
<FrameworkVersion>.NET Framework 3.5</FrameworkVersion>
1919
<OutputPath>..\..\docs\html\v3.5</OutputPath>
2020
<HtmlHelpName>API Reference Documentation</HtmlHelpName>
2121
<Language>en-US</Language>

src/corelib/Core/Compat/Funcs.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
//
2+
// System.Func.cs
3+
//
4+
// Authors:
5+
// Alejandro Serrano "Serras" (trupill@yahoo.es)
6+
// Marek Safar (marek.safar@gmail.com)
7+
//
8+
9+
// Permission is hereby granted, free of charge, to any person obtaining
10+
// a copy of this software and associated documentation files (the
11+
// "Software"), to deal in the Software without restriction, including
12+
// without limitation the rights to use, copy, modify, merge, publish,
13+
// distribute, sublicense, and/or sell copies of the Software, and to
14+
// permit persons to whom the Software is furnished to do so, subject to
15+
// the following conditions:
16+
//
17+
// The above copyright notice and this permission notice shall be
18+
// included in all copies or substantial portions of the Software.
19+
//
20+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22+
// MERCHANTABILITY, FITNESS FOR TArg PARTICULAR PURPOSE AND
23+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26+
//
27+
28+
using System.Runtime.CompilerServices;
29+
30+
namespace net.openstack.Core {
31+
32+
#if NET35
33+
/// <summary>
34+
/// Encapsulates a method that has six parameters and returns a value of the type specified by the <typeparamref name="TResult"/> parameter.
35+
/// </summary>
36+
/// <typeparam name="T1">The type of the first parameter of the method that this delegate encapsulates.</typeparam>
37+
/// <typeparam name="T2">The type of the second parameter of the method that this delegate encapsulates.</typeparam>
38+
/// <typeparam name="T3">The type of the third parameter of the method that this delegate encapsulates.</typeparam>
39+
/// <typeparam name="T4">The type of the fourth parameter of the method that this delegate encapsulates.</typeparam>
40+
/// <typeparam name="T5">The type of the fifth parameter of the method that this delegate encapsulates.</typeparam>
41+
/// <typeparam name="T6">The type of the sixth parameter of the method that this delegate encapsulates.</typeparam>
42+
/// <typeparam name="TResult">The type of the return value of the method that this delegate encapsulates.</typeparam>
43+
/// <param name="arg1">The first parameter of the method that this delegate encapsulates.</param>
44+
/// <param name="arg2">The second parameter of the method that this delegate encapsulates.</param>
45+
/// <param name="arg3">The third parameter of the method that this delegate encapsulates.</param>
46+
/// <param name="arg4">The fourth parameter of the method that this delegate encapsulates.</param>
47+
/// <param name="arg5">The fifth parameter of the method that this delegate encapsulates.</param>
48+
/// <param name="arg6">The sixth parameter of the method that this delegate encapsulates.</param>
49+
/// <returns>The return value of the method that this delegate encapsulates.</returns>
50+
public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
51+
#endif
52+
53+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#if NET35
2+
3+
namespace System.Runtime.Serialization
4+
{
5+
/// <summary>
6+
/// For internal compatibility use only.
7+
/// </summary>
8+
internal interface ISafeSerializationData
9+
{
10+
/// <summary>
11+
/// For internal compatibility use only.
12+
/// </summary>
13+
void CompleteDeserialization(object deserialized);
14+
}
15+
}
16+
17+
#endif
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
//
2+
// IStructuralComparable.cs
3+
//
4+
// Authors:
5+
// Zoltan Varga (vargaz@gmail.com)
6+
//
7+
// Copyright (C) 2009 Novell
8+
//
9+
// Permission is hereby granted, free of charge, to any person obtaining
10+
// a copy of this software and associated documentation files (the
11+
// "Software"), to deal in the Software without restriction, including
12+
// without limitation the rights to use, copy, modify, merge, publish,
13+
// distribute, sublicense, and/or sell copies of the Software, and to
14+
// permit persons to whom the Software is furnished to do so, subject to
15+
// the following conditions:
16+
//
17+
// The above copyright notice and this permission notice shall be
18+
// included in all copies or substantial portions of the Software.
19+
//
20+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27+
//
28+
29+
#if NET35
30+
31+
using System;
32+
using System.Collections;
33+
34+
namespace net.openstack.Core
35+
{
36+
/// <summary>
37+
/// Supports the structural comparison of collection objects.
38+
/// </summary>
39+
public interface IStructuralComparable {
40+
/// <summary>
41+
/// Determines whether the current collection object precedes, occurs in the same position as, or follows another object in the sort order.
42+
/// </summary>
43+
/// <param name="other">The object to compare with the current instance.</param>
44+
/// <param name="comparer">An object that compares members of the current collection object with the corresponding members of <paramref name="other"/>.</param>
45+
/// <returns>
46+
/// An integer that indicates the relationship of the current collection object to other, as shown in the following table.
47+
///
48+
/// <list type="table">
49+
/// <listheader>
50+
/// <term>Return value</term>
51+
/// <term>Description</term>
52+
/// </listheader>
53+
/// <item>
54+
/// <term>-1</term>
55+
/// <term>The current instance precedes <paramref name="other"/>.</term>
56+
/// </item>
57+
/// <item>
58+
/// <term>0</term>
59+
/// <term>The current instance and <paramref name="other"/> are equal.</term>
60+
/// </item>
61+
/// <item>
62+
/// <term>1</term>
63+
/// <term>The current instance follows <paramref name="other"/>.</term>
64+
/// </item>
65+
/// </list>
66+
/// </returns>
67+
/// <exception cref="ArgumentException">This instance and <paramref name="other"/> are not the same type.</exception>
68+
int CompareTo (object other, IComparer comparer);
69+
}
70+
}
71+
72+
#endif
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
//
2+
// IStructuralEquatable.cs
3+
//
4+
// Authors:
5+
// Zoltan Varga (vargaz@gmail.com)
6+
//
7+
// Copyright (C) 2009 Novell
8+
//
9+
// Permission is hereby granted, free of charge, to any person obtaining
10+
// a copy of this software and associated documentation files (the
11+
// "Software"), to deal in the Software without restriction, including
12+
// without limitation the rights to use, copy, modify, merge, publish,
13+
// distribute, sublicense, and/or sell copies of the Software, and to
14+
// permit persons to whom the Software is furnished to do so, subject to
15+
// the following conditions:
16+
//
17+
// The above copyright notice and this permission notice shall be
18+
// included in all copies or substantial portions of the Software.
19+
//
20+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27+
//
28+
29+
#if NET35
30+
31+
using System;
32+
using System.Collections;
33+
34+
namespace net.openstack.Core
35+
{
36+
/// <summary>
37+
/// Defines methods to support the comparison of objects for structural equality.
38+
/// </summary>
39+
public interface IStructuralEquatable {
40+
/// <summary>
41+
/// Determines whether an object is structurally equal to the current instance.
42+
/// </summary>
43+
/// <param name="other">The object to compare with the current instance.</param>
44+
/// <param name="comparer">An object that determines whether the current instance and <paramref name="other"/> are equal.</param>
45+
/// <returns><c>true</c> if the two objects are equal; otherwise, <c>false</c>.</returns>
46+
bool Equals (object other, IEqualityComparer comparer);
47+
48+
/// <summary>
49+
/// Returns a hash code for the current instance.
50+
/// </summary>
51+
/// <param name="comparer">An object that computes the hash code of the current object.</param>
52+
/// <returns>The hash code for the current instance.</returns>
53+
int GetHashCode (IEqualityComparer comparer);
54+
}
55+
}
56+
57+
#endif

0 commit comments

Comments
 (0)