Commit 00b8a2f5 authored by Marc Gravell's avatar Marc Gravell

Update to rc1 (23516 dependencies); implement test skipping (including...

Update to rc1 (23516 dependencies); implement test skipping (including case-sensntivity check); swap all explicit #if to vague #if so we can iterate without bulk changes
parent 583f98f6
......@@ -3,6 +3,9 @@
using System.Reflection;
using System.Linq;
using System.Collections.Generic;
using Xunit;
using Dapper;
namespace SqlMapper
{
......@@ -71,7 +74,7 @@ static void RunPerformanceTests()
static void Main()
{
#if DOTNET5_2
#if COREFX
Console.WriteLine("CoreCLR");
#else
Console.WriteLine(".NET: " + Environment.Version);
......@@ -105,7 +108,7 @@ static void Main()
RunPerformanceTests();
#endif
#if DOTNET5_2
#if COREFX
Console.WriteLine("(end of tests; press return)");
Console.ReadLine();
#else
......@@ -164,7 +167,7 @@ insert Posts ([Text],CreationDate, LastChangeDate) values (replicate('x', 2000),
}
private static bool HasAttribute<T>(MemberInfo member) where T : Attribute
{
#if DOTNET5_2
#if COREFX
return member.CustomAttributes.Any(x => x.AttributeType == typeof(T));
#else
return Attribute.IsDefined(member, typeof(T), true);
......@@ -182,13 +185,25 @@ private static void RunTests<T>(ref int fail, ref int skip, ref int pass, ref in
if (activeTests.Length != 0) methods = activeTests;
foreach (var method in methods)
{
if (HasAttribute<SkipTestAttribute>(method))
#if COREFX
var fact = (FactAttribute)method.GetCustomAttribute(typeof(FactAttribute));
#else
var fact = (FactAttribute)Attribute.GetCustomAttribute(method, typeof(FactAttribute));
#endif
if(fact == null)
{
Console.WriteLine(" - missing [Fact]");
fail++;
failNames.Add(method.Name);
continue;
}
if(!string.IsNullOrWhiteSpace(fact.Skip))
{
Console.WriteLine("Skipping " + method.Name);
skip++;
continue;
}
bool expectFrameworkFail = HasAttribute<FrameworkFail>(method);
Console.Write("Running " + method.Name);
try
......@@ -197,27 +212,14 @@ private static void RunTests<T>(ref int fail, ref int skip, ref int pass, ref in
{
method.Invoke(t, null);
}
if (expectFrameworkFail)
{
Console.WriteLine(" - was expected to framework-fail, but didn't");
fail++;
failNames.Add(method.Name);
}
else
{
Console.WriteLine(" - OK!");
pass++;
}
}
catch (TargetInvocationException tie)
{
Console.WriteLine(" - " + tie.InnerException.Message);
if (expectFrameworkFail)
{
frameworkFail++;
}
else
{
fail++;
failNames.Add(method.Name);
if (tie.InnerException is TypeInitializationException)
......@@ -225,7 +227,6 @@ private static void RunTests<T>(ref int fail, ref int skip, ref int pass, ref in
Console.WriteLine("> " + tie.InnerException.InnerException.Message);
}
}
}
catch (Exception ex)
{
fail++;
......@@ -240,15 +241,58 @@ private static void RunTests<T>(ref int fail, ref int skip, ref int pass, ref in
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class ActiveTestAttribute : Attribute {}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class SkipTestAttribute : Attribute { }
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class FrameworkFail : Attribute {
public FrameworkFail(string url) {
public sealed class FactUnlessCoreCLRAttribute : FactAttribute {
public FactUnlessCoreCLRAttribute(string url)
{
#if COREFX
Skip = $"CoreFX: {url}";
#endif
this.Url = url;
}
public string Url { get; private set; }
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class FactLongRunningAttribute : FactAttribute
{
public FactLongRunningAttribute()
{
#if !LONG_RUNNING
Skip = $"Long running";
#endif
}
public string Url { get; private set; }
}
class FactUnlessCaseSensitiveDatabaseAttribute : FactAttribute
{
public FactUnlessCaseSensitiveDatabaseAttribute() : base()
{
if (IsCaseSensitive)
{
Skip = "Case sensitive database";
}
}
public static readonly bool IsCaseSensitive;
static FactUnlessCaseSensitiveDatabaseAttribute()
{
using (var conn = Program.GetOpenConnection())
{
try
{
conn.Execute("declare @i int; set @I = 1;");
}
catch (SqlException s)
{
if (s.Number == 137)
IsCaseSensitive = true;
else
throw;
}
}
}
}
}
......@@ -10,7 +10,7 @@
using System.Data.SqlClient;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbConnection = System.Data.Common.DbConnection;
#endif
......
......@@ -4,7 +4,7 @@
using System.Linq;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......
......@@ -4,7 +4,7 @@
using System.Linq;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......
......@@ -5,7 +5,7 @@
using System.Linq;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......
......@@ -8,7 +8,7 @@
using System.Linq;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......@@ -970,7 +970,7 @@ public void Issue192_InParameterWorksWithSimilarNamesWithUnicode()
((int)rows.Field_1).IsEqualTo(2);
}
[Fact]
[FactUnlessCaseSensitiveDatabase]
public void Issue220_InParameterCanBeSpecifiedInAnyCase()
{
// note this might fail if your database server is case-sensitive
......
......@@ -4,7 +4,7 @@
using System.Linq;
using Xunit;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......
//#define POSTGRESQL // uncomment to run postgres tests
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbConnection = System.Data.Common.DbConnection;
......@@ -35,7 +35,7 @@
#endif
#endif
#if DOTNET5_2
#if COREFX
namespace System.ComponentModel {
public sealed class DescriptionAttribute : Attribute {
public DescriptionAttribute(string description)
......@@ -1239,7 +1239,7 @@ public void TestCustomTypeMap()
static string GetDescriptionFromAttribute(MemberInfo member)
{
if (member == null) return null;
#if DOTNET5_2
#if COREFX
var data = member.CustomAttributes.FirstOrDefault(x => x.AttributeType == typeof(DescriptionAttribute));
return (string) data?.ConstructorArguments.Single().Value;
#else
......@@ -1591,7 +1591,7 @@ public void TestChangingDefaultStringTypeMappingToAnsiString()
Dapper.SqlMapper.AddTypeMap(typeof(string), DbType.String); // Restore Default to Unicode String
}
#if DOTNET5_2
#if COREFX
class TransactedConnection : IDbConnection
{
IDbConnection _conn;
......@@ -1787,7 +1787,7 @@ public void TestDoubleDecimalConversions_SO18228523_Nulls()
private static CultureInfo ActiveCulture
{
#if DOTNET5_2
#if COREFX
get { return CultureInfo.CurrentCulture; }
set { CultureInfo.CurrentCulture = value; }
#else
......@@ -1796,7 +1796,7 @@ private static CultureInfo ActiveCulture
#endif
}
[Fact]
[FactUnlessCaseSensitiveDatabase]
public void TestParameterInclusionNotSensitiveToCurrentCulture()
{
// note this might fail if your database server is case-sensitive
......@@ -1851,10 +1851,7 @@ enum AnotherEnum : byte
B = 1
}
#if DOTNET5_2
[FrameworkFail("https://github.com/dotnet/corefx/issues/1613")]
#endif
[Fact]
[FactUnlessCoreCLR("https://github.com/dotnet/corefx/issues/1613")]
public void AdoNetEnumValue()
{
using (var cmd = connection.CreateCommand())
......@@ -2061,7 +2058,7 @@ public class SomeType
public int A { get; set; }
public string B { get; set; }
}
#if !DOTNET5_2
#if !COREFX
class WithInit : ISupportInitialize
{
public string Value { get; set; }
......@@ -2756,12 +2753,10 @@ public void SO29343103_UtcDates()
var date = DateTime.UtcNow;
var returned = connection.Query<DateTime>(sql, new { date }).Single();
var delta = returned - date;
Assert.IsTrue(delta.TotalMilliseconds >= -1 && delta.TotalMilliseconds <= 1);
Assert.IsTrue(delta.TotalMilliseconds >= -10 && delta.TotalMilliseconds <= 10);
}
#if DOTNET5_2
[FrameworkFail("https://github.com/dotnet/corefx/issues/1612")]
#endif
[Fact]
[FactUnlessCoreCLR("https://github.com/dotnet/corefx/issues/1612")]
public void Issue261_Decimals()
{
var parameters = new DynamicParameters();
......@@ -2771,10 +2766,7 @@ public void Issue261_Decimals()
var c = parameters.Get<Decimal>("c");
c.IsEqualTo(11.884M);
}
#if DOTNET5_2
[FrameworkFail("https://github.com/dotnet/corefx/issues/1612")]
#endif
[Fact]
[FactUnlessCoreCLR("https://github.com/dotnet/corefx/issues/1612")]
public void Issue261_Decimals_ADONET_SetViaBaseClass()
{
Issue261_Decimals_ADONET(true);
......@@ -2833,7 +2825,7 @@ public void BasicDecimals()
c.IsEqualTo(11.884M);
}
[SkipTest]
[FactLongRunning]
public void Issue263_Timeout()
{
var watch = Stopwatch.StartNew();
......
......@@ -12,14 +12,16 @@
}
},
"commands": {
"Dapper.DNX.Tests": "Dapper.DNX.Tests",
"run": "Dapper.DNX.Tests",
"test": "xunit.runner.dnx"
},
"compilationOptions": {
"warningsAsErrors": true
},
"frameworks": {
"net45": {
"compilationOptions": {
"define": [ "ASYNC" ],
"warningsAsErrors": true
"define": [ "ASYNC" ]
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0",
......@@ -39,18 +41,18 @@
"xunit": "1.9.2"
}
},
"dotnet5.2": {
"dotnet5.4": {
"compilationOptions": {
"define": [ ],
"shouldDefine": [ "ASYNC" ]
"define": [ "ASYNC", "COREFX" ]
},
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23225",
"System.Collections": "4.0.11-beta-23225",
"System.Console": "4.0.0-beta-23409",
"System.Data.SqlClient": "4.0.0-beta-23225",
"System.Linq": "4.0.1-beta-23225",
"System.Threading": "4.0.11-beta-23225",
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23509",
"System.Collections": "4.0.11-beta-23516",
"System.Console": "4.0.0-beta-23516",
"System.Data.SqlClient": "4.0.0-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"xunit": "2.1.0"
}
},
......@@ -65,7 +67,7 @@
},
"dnxcore50": {
"compilationOptions": {
"define": [ "DOTNET5_2", "ASYNC" ]
"define": [ "COREFX", "ASYNC" ]
},
"dependencies": {
"xunit": "2.1.0",
......
......@@ -5,7 +5,7 @@
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0",
"summary": "A high performance Micro-ORM",
"description": "A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc..",
"version": "1.50-beta1",
"version": "1.50-beta2",
"title": "Dapper dot net (strong named)",
"tags": [ "orm", "sql", "micro-orm" ],
"dependencies": {
......@@ -15,41 +15,40 @@
"../Dapper/**/*.cs"
],
"compilationOptions": {
"keyFile": "../Dapper.snk"
"keyFile": "../Dapper.snk",
"warningsAsErrors": true
},
"frameworks": {
"net45": {
"compilationOptions": {
"define": [ "ASYNC" ],
"warningsAsErrors": true
"define": [ "ASYNC" ]
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"net40": {
"compilationOptions": { "warningsAsErrors": true },
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"dotnet5.2": {
"dotnet5.4": {
"compilationOptions": {
"define": [ "ASYNC" ],
"warningsAsErrors": true
"define": [ "ASYNC", "COREFX" ]
},
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23225",
"System.Collections": "4.0.11-beta-23409",
"System.Collections.Concurrent": "4.0.11-beta-*",
"System.Data.SqlClient": "4.0.0-beta-23225",
"System.Linq": "4.0.1-beta-*",
"System.Reflection.Emit.ILGeneration": "4.0.1-beta-*",
"System.Reflection.Emit.Lightweight": "4.0.1-beta-*",
"System.Reflection.TypeExtensions": "4.0.1-beta-23225",
"System.Text.RegularExpressions": "4.0.11-beta-23409",
"System.Threading": "4.0.11-beta-*",
"System.Threading.ThreadPool": "4.0.10-beta-*"
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Collections.Concurrent": "4.0.11-beta-23516",
"System.Data.SqlClient": "4.0.0-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Reflection.Emit.ILGeneration": "4.0.1-beta-23516",
"System.Reflection.Emit.Lightweight": "4.0.1-beta-23516",
"System.Reflection.TypeExtensions": "4.1.0-beta-23516",
"System.Text.RegularExpressions": "4.0.11-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"System.Threading.ThreadPool": "4.0.10-beta-23516"
}
}
}
......
......@@ -4,7 +4,7 @@
using System.Reflection.Emit;
using System.Threading;
#if DOTNET5_2
#if COREFX
using IDbTransaction = System.Data.Common.DbTransaction;
using IDbConnection = System.Data.Common.DbConnection;
using IDbCommand = System.Data.Common.DbCommand;
......
using System;
using System.Data;
#if !DOTNET5_2
#if !COREFX
namespace Dapper
{
sealed class DataTableHandler : SqlMapper.ITypeHandler
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
#endif
......
......@@ -26,7 +26,7 @@ public DefaultTypeMap(Type type)
Properties = GetSettableProps(type);
_type = type;
}
#if DOTNET5_2
#if COREFX
static bool IsParameterMatch(ParameterInfo[] x, ParameterInfo[] y)
{
if (ReferenceEquals(x, y)) return true;
......@@ -40,7 +40,7 @@ static bool IsParameterMatch(ParameterInfo[] x, ParameterInfo[] y)
internal static MethodInfo GetPropertySetter(PropertyInfo propertyInfo, Type type)
{
if (propertyInfo.DeclaringType == type) return propertyInfo.GetSetMethod(true);
#if DOTNET5_2
#if COREFX
return propertyInfo.DeclaringType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
.Single(x => x.Name == propertyInfo.Name
&& x.PropertyType == propertyInfo.PropertyType
......@@ -118,7 +118,7 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
public ConstructorInfo FindExplicitConstructor()
{
var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
#if DOTNET5_2
#if COREFX
var withAttr = constructors.Where(c => c.CustomAttributes.Any(x => x.AttributeType == typeof(ExplicitConstructorAttribute))).ToList();
#else
var withAttr = constructors.Where(c => c.GetCustomAttributes(typeof(ExplicitConstructorAttribute), true).Length > 0).ToList();
......
......@@ -8,7 +8,7 @@ partial class DynamicParameters
{
internal static class CachedOutputSetters<T>
{
#if DOTNET5_2
#if COREFX
public static readonly Dictionary<string, Action<object, DynamicParameters>> Cache = new Dictionary<string, Action<object, DynamicParameters>>();
#else
public static readonly Hashtable Cache = new Hashtable();
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
#endif
namespace Dapper
......
......@@ -6,7 +6,7 @@
using System.Reflection;
using System.Reflection.Emit;
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
using IDbCommand = System.Data.Common.DbCommand;
using ApplicationException = System.InvalidOperationException;
......@@ -401,7 +401,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
var cache = CachedOutputSetters<T>.Cache;
Action<object, DynamicParameters> setter;
#if DOTNET5_2
#if COREFX
lock (cache)
{
if(!cache.TryGetValue(lookup, out setter)) setter = null;
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbConnection = System.Data.Common.DbConnection;
#endif
namespace Dapper
......
......@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Data;
#if !DOTNET5_2
#if !COREFX
namespace Dapper
{
sealed class SqlDataRecordHandler : SqlMapper.ITypeHandler
......
......@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Data;
using System.Reflection;
#if !DOTNET5_2
#if !COREFX
namespace Dapper
{
......
......@@ -9,7 +9,7 @@
using System.Threading;
using System.Threading.Tasks;
#if DOTNET5_2
#if COREFX
using IDbTransaction = System.Data.Common.DbTransaction;
using IDbConnection = System.Data.Common.DbConnection;
using IDbCommand = System.Data.Common.DbCommand;
......
......@@ -2,7 +2,7 @@
using System.Data;
using System.Threading;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
#endif
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDataReader = System.Data.Common.DbDataReader;
#endif
......
......@@ -6,7 +6,7 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
#endif
......
......@@ -3,7 +3,7 @@
using System.Data;
using System.Linq;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
#endif
......
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
#endif
namespace Dapper
......
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
#endif
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
#endif
namespace Dapper
......
using System;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbConnection = System.Data.Common.DbConnection;
#endif
......
......@@ -4,7 +4,7 @@
using System.Linq;
using System.Text;
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
#endif
......
......@@ -2,7 +2,7 @@
using System.ComponentModel;
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
#endif
......@@ -14,7 +14,7 @@ partial class SqlMapper
/// Not intended for direct usage
/// </summary>
[Obsolete("Not intended for direct usage", false)]
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......
......@@ -3,7 +3,7 @@
Home page: http://code.google.com/p/dapper-dot-net/
*/
#if DOTNET5_2
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
using IDataParameter = System.Data.Common.DbParameter;
using IDbTransaction = System.Data.Common.DbTransaction;
......@@ -214,7 +214,7 @@ static SqlMapper()
[typeof(TimeSpan?)] = DbType.Time,
[typeof(object)] = DbType.Object
};
#if !DOTNET5_2
#if !COREFX
AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), false);
AddTypeHandlerImpl(typeof(IEnumerable<Microsoft.SqlServer.Server.SqlDataRecord>), new SqlDataRecordHandler(), false);
#endif
......@@ -226,7 +226,7 @@ static SqlMapper()
public static void ResetTypeHandlers()
{
typeHandlers = new Dictionary<Type, ITypeHandler>();
#if !DOTNET5_2
#if !COREFX
AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), true);
AddTypeHandlerImpl(typeof(IEnumerable<Microsoft.SqlServer.Server.SqlDataRecord>), new SqlDataRecordHandler(), true);
#endif
......@@ -321,7 +321,7 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler)
/// Get the DbType that maps to a given value
/// </summary>
[Obsolete("This method is for internal use only")]
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......@@ -360,7 +360,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
return DynamicParameters.EnumerableMultiParameter;
}
#if !DOTNET5_2
#if !COREFX
switch (type.FullName)
{
case "Microsoft.SqlServer.Types.SqlGeography":
......@@ -1401,7 +1401,7 @@ private static Exception MultiMapException(IDataRecord reader)
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......@@ -1417,7 +1417,7 @@ public static char ReadChar(object value)
/// <summary>
/// Internal use only
/// </summary>
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......@@ -1434,7 +1434,7 @@ public static char ReadChar(object value)
/// <summary>
/// Internal use only
/// </summary>
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......@@ -1458,7 +1458,7 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param
/// <summary>
/// Internal use only
/// </summary>
#if !DOTNET5_2
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
......@@ -1637,7 +1637,7 @@ public static string Format(object value)
{
switch (TypeExtensions.GetTypeCode(value.GetType()))
{
#if !DOTNET5_2
#if !COREFX
case TypeCode.DBNull:
return "null";
#endif
......@@ -2282,7 +2282,7 @@ static readonly MethodInfo
public static ITypeMap GetTypeMap(Type type)
{
if (type == null) throw new ArgumentNullException(nameof(type));
#if DOTNET5_2
#if COREFX
ITypeMap map = null;
#else
var map = (ITypeMap)_typeMaps[type];
......@@ -2292,7 +2292,7 @@ public static ITypeMap GetTypeMap(Type type)
lock (_typeMaps)
{ // double-checked; store this to avoid reflection next time we see this type
// since multiple queries commonly use the same domain-entity/DTO/view-model type
#if DOTNET5_2
#if COREFX
if (!_typeMaps.TryGetValue(type, out map)) map = null;
#else
map = (ITypeMap)_typeMaps[type];
......@@ -2309,7 +2309,7 @@ public static ITypeMap GetTypeMap(Type type)
}
// use Hashtable to get free lockless reading
#if DOTNET5_2
#if COREFX
private static readonly Dictionary<Type,ITypeMap> _typeMaps = new Dictionary<Type, ITypeMap>();
#else
private static readonly Hashtable _typeMaps = new Hashtable();
......@@ -2382,7 +2382,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
ConstructorInfo specializedConstructor = null;
#if !DOTNET5_2
#if !COREFX
bool supportInitialize = false;
#endif
if (type.IsValueType())
......@@ -2427,7 +2427,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
il.Emit(OpCodes.Newobj, explicitConstr);
il.Emit(OpCodes.Stloc_1);
#if !DOTNET5_2
#if !COREFX
supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type);
if (supportInitialize)
{
......@@ -2449,7 +2449,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
{
il.Emit(OpCodes.Newobj, ctor);
il.Emit(OpCodes.Stloc_1);
#if !DOTNET5_2
#if !COREFX
supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type);
if (supportInitialize)
{
......@@ -2643,7 +2643,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
il.Emit(OpCodes.Newobj, specializedConstructor);
}
il.Emit(OpCodes.Stloc_1); // stack is empty
#if !DOTNET5_2
#if !COREFX
if (supportInitialize)
{
il.Emit(OpCodes.Ldloc_1);
......@@ -2914,7 +2914,7 @@ public static IEqualityComparer<string> ConnectionStringComparer
#if !DOTNET5_2
#if !COREFX
/// <summary>
/// Used to pass a DataTable as a TableValuedParameter
/// </summary>
......
......@@ -2,7 +2,7 @@
using System.Data;
using System.Reflection;
#if !DOTNET5_2
#if !COREFX
namespace Dapper
{
/// <summary>
......
......@@ -8,7 +8,7 @@ internal static class TypeExtensions
{
public static bool IsValueType(this Type type)
{
#if DOTNET5_2
#if COREFX
return type.GetTypeInfo().IsValueType;
#else
return type.IsValueType;
......@@ -16,13 +16,13 @@ public static bool IsValueType(this Type type)
}
public static bool IsEnum(this Type type)
{
#if DOTNET5_2
#if COREFX
return type.GetTypeInfo().IsEnum;
#else
return type.IsEnum;
#endif
}
#if DOTNET5_2
#if COREFX
public static TypeCode GetTypeCode(Type type)
{
if (type == null) return TypeCode.Empty;
......@@ -63,7 +63,7 @@ public static TypeCode GetTypeCode(Type type)
#endif
public static MethodInfo GetPublicInstanceMethod(this Type type, string name, Type[] types)
{
#if DOTNET5_2
#if COREFX
var method = type.GetMethod(name, types);
return (method != null && method.IsPublic && !method.IsStatic) ? method : null;
#else
......
......@@ -5,7 +5,7 @@ namespace Dapper
{
partial class SqlMapper
{
#if !DOTNET5_2
#if !COREFX
/// <summary>
/// A type handler for data-types that are supported by the underlying provider, but which need
/// a well-known UdtTypeName to be specified
......
using System.Data;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
#endif
namespace Dapper
{
#if DOTNET5_2
#if COREFX
/// <summary>
/// Describes a reader that controls the lifetime of both a command and a reader,
/// exposing the downstream command/reader as properties.
......
......@@ -2,14 +2,14 @@
using System.Data;
using System.Collections;
#if DOTNET5_2
#if COREFX
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
#endif
namespace Dapper
{
#if DOTNET5_2
#if COREFX
internal class WrappedReader : WrappedDataReader
{
private IDbCommand cmd;
......
......@@ -5,17 +5,19 @@
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0",
"summary": "A high performance Micro-ORM",
"description": "A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc..",
"version": "1.50-beta1",
"version": "1.50-beta2",
"title": "Dapper dot net",
"tags": [ "orm", "sql", "micro-orm" ],
"dependencies": {
},
"releaseNotes": "http://stackexchange.github.io/dapper-dot-net/",
"compilationOptions": {
"warningsAsErrors": true
},
"frameworks": {
"net45": {
"compilationOptions": {
"define": [ "ASYNC" ],
"warningsAsErrors": true
"define": [ "ASYNC" ]
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0",
......@@ -23,29 +25,28 @@
}
},
"net40": {
"compilationOptions": { "warningsAsErrors": true },
"frameworkAssemblies": {
"System.Data": "4.0.0.0",
"System.Xml": "4.0.0.0"
}
},
"dotnet5.2": {
"dotnet5.4": {
"compilationOptions": {
"define": [ "ASYNC" ],
"warningsAsErrors": true
"define": [ "ASYNC", "COREFX" ]
},
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23225",
"System.Collections": "4.0.11-beta-23409",
"System.Collections.Concurrent": "4.0.11-beta-*",
"System.Data.SqlClient": "4.0.0-beta-23225",
"System.Linq": "4.0.1-beta-*",
"System.Reflection.Emit.ILGeneration": "4.0.1-beta-*",
"System.Reflection.Emit.Lightweight": "4.0.1-beta-*",
"System.Reflection.TypeExtensions": "4.0.1-beta-23225",
"System.Text.RegularExpressions": "4.0.11-beta-23409",
"System.Threading": "4.0.11-beta-*",
"System.Threading.ThreadPool": "4.0.10-beta-*"
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Collections.Concurrent": "4.0.11-beta-23516",
"System.Data.SqlClient": "4.0.0-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Reflection.Emit.ILGeneration": "4.0.1-beta-23516",
"System.Reflection.Emit.Lightweight": "4.0.1-beta-23516",
"System.Reflection.TypeExtensions": "4.1.0-beta-23516",
"System.Text.RegularExpressions": "4.0.11-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"System.Threading.ThreadPool": "4.0.10-beta-23516"
}
}
}
......
......@@ -2,7 +2,9 @@
<configuration>
<packageSources>
<clear />
<!--
<add key="CoreCLR" value="https://www.myget.org/F/dotnet-coreclr/api/v3/index.json" />
-->
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment