提交 a161cb5a 编写于 作者: M Marc Gravell

CoreCLR build / 1.41-beta

上级 1fc06af5
......@@ -8,6 +8,15 @@
#if DNXCORE50
using IDbDataParameter = System.Data.Common.DbParameter;
using IDataParameter = System.Data.Common.DbParameter;
using IDbTransaction = System.Data.Common.DbTransaction;
using IDbConnection = System.Data.Common.DbConnection;
using IDbCommand = System.Data.Common.DbCommand;
using IDataReader = System.Data.Common.DbDataReader;
using IDataRecord = System.Data.Common.DbDataReader;
using IDataParameterCollection = System.Data.Common.DbParameterCollection;
using DataException = System.InvalidOperationException;
using ApplicationException = System.InvalidOperationException;
#endif
using System;
......@@ -24,6 +33,7 @@
using System.Diagnostics;
using System.Globalization;
using System.Linq.Expressions;
using System.Data.Common;
namespace Dapper
{
......@@ -312,7 +322,7 @@ public interface ITypeHandler
/// <returns>The typed value</returns>
object Parse(Type destinationType, object value);
}
#if !DNXCORE50
/// <summary>
/// A type handler for data-types that are supported by the underlying provider, but which need
/// a well-known UdtTypeName to be specified
......@@ -342,6 +352,7 @@ void ITypeHandler.SetValue(IDbDataParameter parameter, object value)
}
}
}
#endif
/// <summary>
/// Base-class for simple type-handlers
......@@ -726,8 +737,9 @@ static SqlMapper()
typeMap[typeof(DateTimeOffset?)] = DbType.DateTimeOffset;
typeMap[typeof(TimeSpan?)] = DbType.Time;
typeMap[typeof(object)] = DbType.Object;
#if !DNXCORE50
AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), false);
#endif
}
/// <summary>
......@@ -736,7 +748,9 @@ static SqlMapper()
public static void ResetTypeHandlers()
{
typeHandlers = new Dictionary<Type, ITypeHandler>();
#if !DNXCORE50
AddTypeHandlerImpl(typeof(DataTable), new DataTableHandler(), true);
#endif
}
/// <summary>
/// Configure the specified type to be mapped to a given db-type
......@@ -770,7 +784,7 @@ public static void AddTypeHandlerImpl(Type type, ITypeHandler handler, bool clon
if (type == null) throw new ArgumentNullException("type");
Type secondary = null;
if(type.IsValueType)
if(type.IsValueType())
{
var underlying = Nullable.GetUnderlyingType(type);
if(underlying == null)
......@@ -823,7 +837,10 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler)
/// Not intended for direct usage
/// </summary>
[Obsolete("Not intended for direct usage", false)]
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
public static class TypeHandlerCache<T>
{
/// <summary>
......@@ -862,7 +879,11 @@ internal static void SetHandler(ITypeHandler handler)
/// <summary>
/// Get the DbType that maps to a given value
/// </summary>
[Obsolete("This method is for internal use only"), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal use only")]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
public static DbType GetDbType(object value)
{
if (value == null || value is DBNull) return DbType.Object;
......@@ -877,7 +898,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
handler = null;
var nullUnderlyingType = Nullable.GetUnderlyingType(type);
if (nullUnderlyingType != null) type = nullUnderlyingType;
if (type.IsEnum && !typeMap.ContainsKey(type))
if (type.IsEnum() && !typeMap.ContainsKey(type))
{
type = Enum.GetUnderlyingType(type);
}
......@@ -898,6 +919,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
{
return DbType.Object;
}
#if !DNXCORE50
switch (type.FullName)
{
case "Microsoft.SqlServer.Types.SqlGeography":
......@@ -910,6 +932,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
AddTypeHandler(type, handler = new UdtTypeHandler("hierarchyid"));
return DbType.Object;
}
#endif
if(demand)
throw new NotSupportedException(string.Format("The member {0} of type {1} cannot be used as a parameter value", name, type.FullName));
return DbType.Object;
......@@ -2140,13 +2163,13 @@ private static void PassByPosition(IDbCommand cmd)
{
if (cmd.Parameters.Count == 0) return;
Dictionary<string, IDbDataParameter> parameters = new Dictionary<string, IDbDataParameter>(StringComparer.InvariantCulture);
Dictionary<string, IDbDataParameter> parameters = new Dictionary<string, IDbDataParameter>(StringComparer.Ordinal);
foreach(IDbDataParameter param in cmd.Parameters)
{
if (!string.IsNullOrEmpty(param.ParameterName)) parameters[param.ParameterName] = param;
}
HashSet<string> consumed = new HashSet<string>(StringComparer.InvariantCulture);
HashSet<string> consumed = new HashSet<string>(StringComparer.Ordinal);
bool firstMatch = true;
cmd.CommandText = pseudoPositional.Replace(cmd.CommandText, match =>
{
......@@ -2193,8 +2216,8 @@ private static void PassByPosition(IDbCommand cmd)
}
#endif
Type underlyingType = null;
if (!(typeMap.ContainsKey(type) || type.IsEnum || type.FullName == LinqBinary ||
(type.IsValueType && (underlyingType = Nullable.GetUnderlyingType(type)) != null && underlyingType.IsEnum)))
if (!(typeMap.ContainsKey(type) || type.IsEnum() || type.FullName == LinqBinary ||
(type.IsValueType() && (underlyingType = Nullable.GetUnderlyingType(type)) != null && underlyingType.IsEnum())))
{
ITypeHandler handler;
if (typeHandlers.TryGetValue(type, out handler))
......@@ -2652,7 +2675,10 @@ private static Exception MultiMapException(IDataRecord reader)
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)]
public static char ReadChar(object value)
{
......@@ -2665,7 +2691,10 @@ public static char ReadChar(object value)
/// <summary>
/// Internal use only
/// </summary>
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)]
public static char? ReadNullableChar(object value)
{
......@@ -2679,7 +2708,10 @@ public static char ReadChar(object value)
/// <summary>
/// Internal use only
/// </summary>
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", true)]
public static IDbDataParameter FindOrAddParameter(IDataParameterCollection parameters, IDbCommand command, string name)
{
......@@ -2700,7 +2732,10 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param
/// <summary>
/// Internal use only
/// </summary>
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
#if !DNXCORE50
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)]
public static void PackListParameters(IDbCommand command, string namePrefix, object value)
{
......@@ -2854,10 +2889,12 @@ public static string Format(object value)
}
else
{
switch (Type.GetTypeCode(value.GetType()))
switch (TypeExtensions.GetTypeCode(value.GetType()))
{
#if !DNXCORE50
case TypeCode.DBNull:
return "null";
#endif
case TypeCode.Boolean:
return ((bool)value) ? "1" : "0";
case TypeCode.Byte:
......@@ -2936,7 +2973,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
if (!literalTokens.IsMatch(sql)) return LiteralToken.None;
var matches = literalTokens.Matches(sql);
var found = new HashSet<string>(StringComparer.InvariantCulture);
var found = new HashSet<string>(StringComparer.Ordinal);
List<LiteralToken> list = new List<LiteralToken>(matches.Count);
foreach(Match match in matches)
{
......@@ -2970,7 +3007,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
var il = dm.GetILGenerator();
bool isStruct = type.IsValueType;
bool isStruct = type.IsValueType();
bool haveInt32Arg1 = false;
il.Emit(OpCodes.Ldarg_1); // stack is now [untyped-param]
if (isStruct)
......@@ -3000,7 +3037,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
bool ok = true;
for (int i = 0; i < propsArr.Length; i++)
{
if (!string.Equals(propsArr[i].Name, ctorParams[i].Name, StringComparison.InvariantCultureIgnoreCase))
if (!string.Equals(propsArr[i].Name, ctorParams[i].Name, StringComparison.OrdinalIgnoreCase))
{
ok = false;
break;
......@@ -3012,7 +3049,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
props = propsArr;
}
else { // might still all be accounted for; check the hard way
var positionByName = new Dictionary<string,int>(StringComparer.InvariantCultureIgnoreCase);
var positionByName = new Dictionary<string,int>(StringComparer.OrdinalIgnoreCase);
foreach(var param in ctorParams)
{
positionByName[param.Name] = param.Position;
......@@ -3066,7 +3103,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il.Emit(OpCodes.Ldstr, prop.Name); // stack is now [parameters] [command] [name]
il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [command] [name] [typed-param]
il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [command] [name] [typed-value]
if (prop.PropertyType.IsValueType)
if (prop.PropertyType.IsValueType())
{
il.Emit(OpCodes.Box, prop.PropertyType); // stack is [parameters] [command] [name] [boxed-value]
}
......@@ -3118,7 +3155,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il.Emit(OpCodes.Ldloc_0); // stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param]
il.Emit(callOpCode, prop.GetGetMethod()); // stack is [parameters] [[parameters]] [parameter] [parameter] [typed-value]
bool checkForNull = true;
if (prop.PropertyType.IsValueType)
if (prop.PropertyType.IsValueType())
{
il.Emit(OpCodes.Box, prop.PropertyType); // stack is [parameters] [[parameters]] [parameter] [parameter] [boxed-value]
if (Nullable.GetUnderlyingType(prop.PropertyType) == null)
......@@ -3228,10 +3265,10 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
for(int i = 0; i < propsArr.Length;i++)
{
string thisName = propsArr[i].Name;
if(string.Equals(thisName, huntName, StringComparison.InvariantCultureIgnoreCase))
if(string.Equals(thisName, huntName, StringComparison.OrdinalIgnoreCase))
{
fallback = propsArr[i];
if(string.Equals(thisName, huntName, StringComparison.InvariantCulture))
if(string.Equals(thisName, huntName, StringComparison.Ordinal))
{
exact = fallback;
break;
......@@ -3246,7 +3283,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il.Emit(OpCodes.Ldloc_0); // command, sql, typed parameter
il.EmitCall(callOpCode, prop.GetGetMethod(), null); // command, sql, typed value
Type propType = prop.PropertyType;
var typeCode = Type.GetTypeCode(propType);
var typeCode = TypeExtensions.GetTypeCode(propType);
switch (typeCode)
{
case TypeCode.Boolean:
......@@ -3287,7 +3324,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il.EmitCall(OpCodes.Call, convert, null); // command, sql, string value
break;
default:
if (propType.IsValueType) il.Emit(OpCodes.Box, propType); // command, sql, object value
if (propType.IsValueType()) il.Emit(OpCodes.Box, propType); // command, sql, object value
il.EmitCall(OpCodes.Call, format, null); // command, sql, string value
break;
......@@ -3305,13 +3342,13 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
{
typeof(bool), typeof(sbyte), typeof(byte), typeof(ushort), typeof(short),
typeof(uint), typeof(int), typeof(ulong), typeof(long), typeof(float), typeof(double), typeof(decimal)
}.ToDictionary(x => Type.GetTypeCode(x), x => x.GetMethod("ToString", BindingFlags.Public | BindingFlags.Instance, null, new[] { typeof(IFormatProvider) }, null));
}.ToDictionary(x => TypeExtensions.GetTypeCode(x), x => x.GetPublicInstanceMethod("ToString", new[] { typeof(IFormatProvider) }));
static MethodInfo GetToString(TypeCode typeCode)
{
MethodInfo method;
return toStrings.TryGetValue(typeCode, out method) ? method : null;
}
static readonly MethodInfo StringReplace = typeof(string).GetMethod("Replace", BindingFlags.Instance | BindingFlags.Public, null, new Type[] { typeof(string), typeof(string) }, null),
static readonly MethodInfo StringReplace = typeof(string).GetPublicInstanceMethod("Replace", new Type[] { typeof(string), typeof(string) }),
InvariantCulture = typeof(CultureInfo).GetProperty("InvariantCulture", BindingFlags.Public | BindingFlags.Static).GetGetMethod();
private static int ExecuteCommand(IDbConnection cnn, ref CommandDefinition command, Action<IDbCommand, object> paramReader)
......@@ -3423,7 +3460,7 @@ private static IDataReader ExecuteReaderImpl(IDbConnection cnn, ref CommandDefin
}
#pragma warning restore 618
if (effectiveType.IsEnum)
if (effectiveType.IsEnum())
{ // assume the value is returned as the correct type (int/byte/etc), but box back to the typed enum
return r =>
{
......@@ -3457,7 +3494,7 @@ private static T Parse<T>(object value)
if (value is T) return (T)value;
var type = typeof(T);
type = Nullable.GetUnderlyingType(type) ?? type;
if (type.IsEnum)
if (type.IsEnum())
{
if (value is float || value is double || value is decimal)
{
......@@ -3486,14 +3523,23 @@ static readonly MethodInfo
public static ITypeMap GetTypeMap(Type type)
{
if (type == null) throw new ArgumentNullException("type");
#if DNXCORE50
ITypeMap map = null;
#else
var map = (ITypeMap)_typeMaps[type];
#endif
if (map == null)
{
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 DNXCORE50
if (!_typeMaps.TryGetValue(type, out map)) map = null;
#else
map = (ITypeMap)_typeMaps[type];
if (map == null)
#endif
if (map == null)
{
map = new DefaultTypeMap(type);
_typeMaps[type] = map;
......@@ -3504,7 +3550,11 @@ public static ITypeMap GetTypeMap(Type type)
}
// use Hashtable to get free lockless reading
#if DNXCORE50
private static readonly Dictionary<Type,ITypeMap> _typeMaps = new Dictionary<Type, ITypeMap>();
#else
private static readonly Hashtable _typeMaps = new Hashtable();
#endif
/// <summary>
/// Set custom mapping for type deserializers
......@@ -3577,8 +3627,10 @@ public static void SetTypeMap(Type type, ITypeMap map)
ConstructorInfo specializedConstructor = null;
#if !DNXCORE50
bool supportInitialize = false;
if (type.IsValueType)
#endif
if (type.IsValueType())
{
il.Emit(OpCodes.Ldloca_S, (byte)1);
il.Emit(OpCodes.Initobj, type);
......@@ -3599,7 +3651,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
var consPs = explicitConstr.GetParameters();
foreach(var p in consPs)
{
if(!p.ParameterType.IsValueType)
if(!p.ParameterType.IsValueType())
{
il.Emit(OpCodes.Ldnull);
}
......@@ -3620,12 +3672,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
il.Emit(OpCodes.Newobj, explicitConstr);
il.Emit(OpCodes.Stloc_1);
#if !DNXCORE50
supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type);
if (supportInitialize)
{
il.Emit(OpCodes.Ldloc_1);
il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("BeginInit"), null);
}
#endif
}
else
{
......@@ -3640,12 +3694,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
{
il.Emit(OpCodes.Newobj, ctor);
il.Emit(OpCodes.Stloc_1);
#if !DNXCORE50
supportInitialize = typeof(ISupportInitialize).IsAssignableFrom(type);
if (supportInitialize)
{
il.Emit(OpCodes.Ldloc_1);
il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("BeginInit"), null);
}
#endif
}
else
{
......@@ -3655,7 +3711,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
}
il.BeginExceptionBlock();
if (type.IsValueType)
if (type.IsValueType())
{
il.Emit(OpCodes.Ldloca_S, (byte)1);// [target]
}
......@@ -3706,9 +3762,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
// unbox nullable enums as the primitive, i.e. byte etc
var nullUnderlyingType = Nullable.GetUnderlyingType(memberType);
var unboxType = nullUnderlyingType != null && nullUnderlyingType.IsEnum ? nullUnderlyingType : memberType;
var unboxType = nullUnderlyingType != null && nullUnderlyingType.IsEnum() ? nullUnderlyingType : memberType;
if (unboxType.IsEnum)
if (unboxType.IsEnum())
{
Type numericType = Enum.GetUnderlyingType(unboxType);
if(colType == typeof(string))
......@@ -3743,9 +3799,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
}
else
{
TypeCode dataTypeCode = Type.GetTypeCode(colType), unboxTypeCode = Type.GetTypeCode(unboxType);
TypeCode dataTypeCode = TypeExtensions.GetTypeCode(colType), unboxTypeCode = TypeExtensions.GetTypeCode(unboxType);
bool hasTypeHandler;
if ((hasTypeHandler = typeHandlers.ContainsKey(unboxType)) || colType == unboxType || dataTypeCode == unboxTypeCode || dataTypeCode == Type.GetTypeCode(nullUnderlyingType))
if ((hasTypeHandler = typeHandlers.ContainsKey(unboxType)) || colType == unboxType || dataTypeCode == unboxTypeCode || dataTypeCode == TypeExtensions.GetTypeCode(nullUnderlyingType))
{
if (hasTypeHandler)
{
......@@ -3776,7 +3832,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
// Store the value in the property/field
if (item.Property != null)
{
if (type.IsValueType)
if (type.IsValueType())
{
il.Emit(OpCodes.Call, DefaultTypeMap.GetPropertySetter(item.Property, type)); // stack is now [target]
}
......@@ -3797,7 +3853,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
if (specializedConstructor != null)
{
il.Emit(OpCodes.Pop);
if (item.MemberType.IsValueType)
if (item.MemberType.IsValueType())
{
int localIndex = il.DeclareLocal(item.MemberType).LocalIndex;
LoadLocalAddress(il, localIndex);
......@@ -3828,7 +3884,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
first = false;
index += 1;
}
if (type.IsValueType)
if (type.IsValueType())
{
il.Emit(OpCodes.Pop);
}
......@@ -3839,11 +3895,13 @@ public static void SetTypeMap(Type type, ITypeMap map)
il.Emit(OpCodes.Newobj, specializedConstructor);
}
il.Emit(OpCodes.Stloc_1); // stack is empty
#if !DNXCORE50
if (supportInitialize)
{
il.Emit(OpCodes.Ldloc_1);
il.EmitCall(OpCodes.Callvirt, typeof(ISupportInitialize).GetMethod("EndInit"), null);
}
#endif
}
il.MarkLabel(allDone);
il.BeginCatchBlock(typeof(Exception)); // stack is Exception
......@@ -3854,7 +3912,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
il.EndExceptionBlock();
il.Emit(OpCodes.Ldloc_1); // stack is [rval]
if (type.IsValueType)
if (type.IsValueType())
{
il.Emit(OpCodes.Box, type);
}
......@@ -3880,7 +3938,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
{
bool handled = false;
OpCode opCode = default(OpCode);
switch (Type.GetTypeCode(from))
switch (TypeExtensions.GetTypeCode(from))
{
case TypeCode.Boolean:
case TypeCode.Byte:
......@@ -3894,7 +3952,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
case TypeCode.Single:
case TypeCode.Double:
handled = true;
switch (Type.GetTypeCode(via ?? to))
switch (TypeExtensions.GetTypeCode(via ?? to))
{
case TypeCode.Byte:
opCode = OpCodes.Conv_Ovf_I1_Un; break;
......@@ -4043,7 +4101,7 @@ public static void ThrowDataException(Exception ex, int index, IDataReader reade
}
else
{
formattedValue = Convert.ToString(value) + " - " + Type.GetTypeCode(value.GetType());
formattedValue = Convert.ToString(value) + " - " + TypeExtensions.GetTypeCode(value.GetType());
}
}
catch (Exception valEx)
......@@ -4379,6 +4437,8 @@ public void Dispose()
}
}
#if !DNXCORE50
/// <summary>
/// Used to pass a DataTable as a TableValuedParameter
/// </summary>
......@@ -4412,7 +4472,7 @@ public static string GetTypeName(this DataTable table)
{
return table == null ? null : table.ExtendedProperties[DataTableTypeNameKey] as string;
}
#endif
// one per thread
[ThreadStatic]
......@@ -4793,8 +4853,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
var lastMemberAccess = expression.Body as MemberExpression;
if (lastMemberAccess == null ||
(lastMemberAccess.Member.MemberType != MemberTypes.Property &&
lastMemberAccess.Member.MemberType != MemberTypes.Field))
(!(lastMemberAccess.Member is PropertyInfo) &&
!(lastMemberAccess.Member is FieldInfo)))
{
if (expression.Body.NodeType == ExpressionType.Convert &&
expression.Body.Type == typeof(object) &&
......@@ -4829,8 +4889,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
break;
}
else if (diving == null ||
(diving.Member.MemberType != MemberTypes.Property &&
diving.Member.MemberType != MemberTypes.Field))
(!(diving.Member is PropertyInfo) &&
!(diving.Member is FieldInfo)))
{
@throw();
}
......@@ -4843,8 +4903,15 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
var lookup = string.Join("|", names.ToArray());
var cache = CachedOutputSetters<T>.Cache;
var setter = (Action<object, DynamicParameters>)cache[lookup];
Action<object, DynamicParameters> setter;
#if DNXCORE50
lock (cache)
{
#endif
setter = (Action<object, DynamicParameters>)cache[lookup];
#if DNXCORE50
}
#endif
if (setter != null) goto MAKECALLBACK;
// Come on let's build a method, let's build it, let's build it now!
......@@ -4860,7 +4927,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
{
var member = chain[0].Member;
if (member.MemberType == MemberTypes.Property)
if (member is PropertyInfo)
{
var get = ((PropertyInfo)member).GetGetMethod(true);
il.Emit(OpCodes.Callvirt, get); // [Member{i}]
......@@ -4879,7 +4946,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
// GET READY
var lastMember = lastMemberAccess.Member;
if (lastMember.MemberType == MemberTypes.Property)
if (lastMember is PropertyInfo)
{
var set = ((PropertyInfo)lastMember).GetSetMethod(true);
il.Emit(OpCodes.Callvirt, set); // SET
......@@ -4939,7 +5006,11 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
internal static class CachedOutputSetters<T>
{
#if DNXCORE50
public static readonly Dictionary<string, Action<object, DynamicParameters>> Cache = new Dictionary<string, Action<object, DynamicParameters>>();
#else
public static readonly Hashtable Cache = new Hashtable();
#endif
}
void SqlMapper.IParameterCallbacks.OnCompleted()
......@@ -4950,7 +5021,7 @@ void SqlMapper.IParameterCallbacks.OnCompleted()
}
}
}
#if !DNXCORE50
sealed class DataTableHandler : Dapper.SqlMapper.ITypeHandler
{
public object Parse(Type destinationType, object value)
......@@ -5019,6 +5090,7 @@ internal static void Set(IDbDataParameter parameter, DataTable table, string typ
}
}
}
#endif
/// <summary>
/// This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
/// </summary>
......@@ -5093,7 +5165,7 @@ private static readonly FeatureSupport
public static FeatureSupport Get(IDbConnection connection)
{
string name = connection == null ? null : connection.GetType().Name;
if (string.Equals(name, "npgsqlconnection", StringComparison.InvariantCultureIgnoreCase)) return postgres;
if (string.Equals(name, "npgsqlconnection", StringComparison.OrdinalIgnoreCase)) return postgres;
return @default;
}
private FeatureSupport(bool arrays)
......@@ -5247,13 +5319,20 @@ internal static MethodInfo GetPropertySetter(PropertyInfo propertyInfo, Type typ
{
return propertyInfo.DeclaringType == type ?
propertyInfo.GetSetMethod(true) :
#if DNXCORE50
propertyInfo.DeclaringType.GetProperty(
propertyInfo.Name, propertyInfo.PropertyType,
propertyInfo.GetIndexParameters().Select(p => p.ParameterType).ToArray()
).GetSetMethod(true);
#else
propertyInfo.DeclaringType.GetProperty(
propertyInfo.Name,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
Type.DefaultBinder,
propertyInfo.PropertyType,
propertyInfo.GetIndexParameters().Select(p => p.ParameterType).ToArray(),
null).GetSetMethod(true);
#endif
}
internal static List<PropertyInfo> GetSettableProps(Type t)
......@@ -5296,7 +5375,7 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
continue;
var unboxedType = Nullable.GetUnderlyingType(ctorParameters[i].ParameterType) ?? ctorParameters[i].ParameterType;
if (unboxedType != types[i]
&& !(unboxedType.IsEnum && Enum.GetUnderlyingType(unboxedType) == types[i])
&& !(unboxedType.IsEnum() && Enum.GetUnderlyingType(unboxedType) == types[i])
&& !(unboxedType == typeof(char) && types[i] == typeof(string)))
break;
}
......@@ -5314,7 +5393,11 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
public ConstructorInfo FindExplicitConstructor()
{
var constructors = _type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
#if DNXCORE50
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();
#endif
if (withAttr.Count == 1)
{
......@@ -5446,6 +5529,211 @@ public SqlMapper.IMemberMap GetMember(string columnName)
}
}
#if DNXCORE50
internal class WrappedReader : WrappedDataReader
{
private IDbCommand cmd;
private IDataReader reader;
public override IEnumerator GetEnumerator()
{
return Reader.GetEnumerator();
}
public WrappedReader(IDbCommand cmd, IDataReader reader)
{
this.cmd = cmd;
this.reader = reader;
}
public override IDataReader Reader
{
get
{
var tmp = reader;
if (tmp == null) throw new ObjectDisposedException(GetType().Name);
return tmp;
}
}
public override IDbCommand Command
{
get
{
var tmp = cmd;
if (tmp == null) throw new ObjectDisposedException(GetType().Name);
return tmp;
}
}
public override int Depth
{
get { return Reader.Depth; }
}
public override bool IsClosed
{
get { return reader == null ? true : reader.IsClosed; }
}
public override bool HasRows
{
get
{
return Reader.HasRows;
}
}
public override bool NextResult()
{
return Reader.NextResult();
}
public override bool Read()
{
return Reader.Read();
}
public override int RecordsAffected
{
get { return Reader.RecordsAffected; }
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (reader != null) reader.Dispose();
reader = null;
if (cmd != null) cmd.Dispose();
cmd = null;
}
base.Dispose(disposing);
}
public override int FieldCount
{
get { return Reader.FieldCount; }
}
public override bool GetBoolean(int i)
{
return Reader.GetBoolean(i);
}
public override byte GetByte(int i)
{
return Reader.GetByte(i);
}
public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
{
return Reader.GetBytes(i, fieldOffset, buffer, bufferoffset, length);
}
public override char GetChar(int i)
{
return Reader.GetChar(i);
}
public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
{
return Reader.GetChars(i, fieldoffset, buffer, bufferoffset, length);
}
protected override IDataReader GetDbDataReader(int ordinal)
{
return Reader.GetData(ordinal);
}
public override string GetDataTypeName(int i)
{
return Reader.GetDataTypeName(i);
}
public override DateTime GetDateTime(int i)
{
return Reader.GetDateTime(i);
}
public override decimal GetDecimal(int i)
{
return Reader.GetDecimal(i);
}
public override double GetDouble(int i)
{
return Reader.GetDouble(i);
}
public override Type GetFieldType(int i)
{
return Reader.GetFieldType(i);
}
public override float GetFloat(int i)
{
return Reader.GetFloat(i);
}
public override Guid GetGuid(int i)
{
return Reader.GetGuid(i);
}
public override short GetInt16(int i)
{
return Reader.GetInt16(i);
}
public override int GetInt32(int i)
{
return Reader.GetInt32(i);
}
public override long GetInt64(int i)
{
return Reader.GetInt64(i);
}
public override string GetName(int i)
{
return Reader.GetName(i);
}
public override int GetOrdinal(string name)
{
return Reader.GetOrdinal(name);
}
public override string GetString(int i)
{
return Reader.GetString(i);
}
public override object GetValue(int i)
{
return Reader.GetValue(i);
}
public override int GetValues(object[] values)
{
return Reader.GetValues(values);
}
public override bool IsDBNull(int i)
{
return Reader.IsDBNull(i);
}
public override object this[string name]
{
get { return Reader[name]; }
}
public override object this[int i]
{
get { return Reader[i]; }
}
}
#else
internal class WrappedReader : IDataReader, IWrappedDataReader
{
private IDataReader reader;
......@@ -5644,7 +5932,25 @@ bool IDataRecord.IsDBNull(int i)
get { return Reader[i]; }
}
}
#endif
#if DNXCORE50
/// <summary>
/// Describes a reader that controls the lifetime of both a command and a reader,
/// exposing the downstream command/reader as properties.
/// </summary>
public abstract class WrappedDataReader : IDataReader
{
/// <summary>
/// Obtain the underlying reader
/// </summary>
public abstract IDataReader Reader { get; }
/// <summary>
/// Obtain the underlying command
/// </summary>
public abstract IDbCommand Command { get; }
}
#else
/// <summary>
/// Describes a reader that controls the lifetime of both a command and a reader,
/// exposing the downstream command/reader as properties.
......@@ -5660,6 +5966,7 @@ public interface IWrappedDataReader : IDataReader
/// </summary>
IDbCommand Command { get; }
}
#endif
/// <summary>
/// Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
......@@ -5712,4 +6019,73 @@ public partial class FeatureSupport
#endif
internal static class TypeExtensions
{
public static bool IsValueType(this Type type)
{
#if DNXCORE50
return typeof(ValueType).IsAssignableFrom(type) && type != typeof(ValueType);
#else
return type.IsValueType;
#endif
}
public static bool IsEnum(this Type type)
{
#if DNXCORE50
return typeof(Enum).IsAssignableFrom(type) && type != typeof(Enum);
#else
return type.IsEnum;
#endif
}
#if DNXCORE50
public static TypeCode GetTypeCode(Type type)
{
if (type == null) return TypeCode.Empty;
TypeCode result;
if (typeCodeLookup.TryGetValue(type, out result)) return result;
if (type.IsEnum())
{
type = Enum.GetUnderlyingType(type);
if (typeCodeLookup.TryGetValue(type, out result)) return result;
}
return TypeCode.Object;
}
static readonly Dictionary<Type, TypeCode> typeCodeLookup = new Dictionary<Type, TypeCode>
{
{typeof(bool), TypeCode.Boolean },
{typeof(byte), TypeCode.Byte },
{typeof(char), TypeCode.Char},
{typeof(DateTime), TypeCode.DateTime},
{typeof(decimal), TypeCode.Decimal},
{typeof(double), TypeCode.Double },
{typeof(short), TypeCode.Int16 },
{typeof(int), TypeCode.Int32 },
{typeof(long), TypeCode.Int64 },
{typeof(object), TypeCode.Object},
{typeof(sbyte), TypeCode.SByte },
{typeof(float), TypeCode.Single },
{typeof(string), TypeCode.String },
{typeof(ushort), TypeCode.UInt16 },
{typeof(uint), TypeCode.UInt32 },
{typeof(ulong), TypeCode.UInt64 },
};
#else
public static TypeCode GetTypeCode(Type type)
{
return Type.GetTypeCode(type);
}
#endif
public static MethodInfo GetPublicInstanceMethod(this Type type, string name, Type[] types)
{
#if DNXCORE50
var method = type.GetMethod(name, types);
return (method != null && method.IsPublic && !method.IsStatic) ? method : null;
#else
return type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public, null, types, null);
#endif
}
}
}
......@@ -2,6 +2,7 @@
using System.Linq;
using System.Data.SqlClient;
using System.Threading.Tasks;
using System.Reflection;
namespace Dapper.DNX.Tests
{
......@@ -9,7 +10,11 @@ public class Program
{
public void Main()
{
#if DNXCORE50
Console.WriteLine("From: {0}", typeof(int).AssemblyQualifiedName);
#else
Console.WriteLine("Version: {0}", Environment.Version);
#endif
const string connectionString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True";
using (var conn = new SqlConnection(connectionString))
{
......@@ -18,16 +23,12 @@ public void Main()
Console.WriteLine(row.X);
var methods = typeof(Dapper.SqlMapper).GetMethods().Where(x => x.Name == "QueryAsync").ToList();
#if ASYNC
row = conn.QueryAsync<Foo>("select @a as X", new { a = 123 }).Result.Single();
#endif
Console.WriteLine(row.X);
}
}
private static async Task<int> WithDelay(int i)
{
await Task.Delay(100);
return i;
}
class Foo
{
public int X { get; set; }
......
......@@ -6,32 +6,35 @@
"commands": {
"Dapper.DNX.Tests": "Dapper.DNX.Tests"
},
"compilationOptions": {"define": ["ASYNC"]},
"frameworks": {
"net45": {
"compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true },
"dependencies": {
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"net40": {
"dependencies": {
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
//"net40": {
// "dependencies": {
// },
// "frameworkAssemblies": {
// "System.Data": "4.0.0.0"
// }
//},
"dnx451": {
"compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true },
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
}
},
"dnxcore50": {
"compilationOptions": { "define": [ ], "warningsAsErrors": true },
"dependencies": {
"System.Console": "4.0.0-beta-*",
"System.Reflection": "4.0.10-beta-*"
}
}
//"dnxcore50" : {
// "dependencies": {
// "System.Console": "4.0.0-beta-22716"
// }
//}
}
}
......@@ -3,53 +3,683 @@
"version": -9997,
"targets": {
".NETFramework,Version=v4.5": {
"Dapper/1.41-alpha": {
"System.Runtime/4.0.20-beta-22816": {
"frameworkAssemblies": [
"System.Data",
"mscorlib",
"System",
"System.Core",
"Microsoft.CSharp"
"System.ComponentModel.Composition",
"System.Core"
],
"compile": [
"lib/net45/Dapper.dll"
"lib/net45/System.Runtime.dll"
],
"runtime": [
"lib/net45/Dapper.dll"
"lib/net45/System.Runtime.dll"
]
}
},
"DNX,Version=v4.5.1": {
"Dapper/1.41-alpha": {
"frameworkAssemblies": [
"System.Data",
"mscorlib",
"System",
"System.Core",
"Microsoft.CSharp"
".NETFramework,Version=v4.0": {},
"DNX,Version=v4.5.1": {},
"DNXCore,Version=v5.0": {
"Microsoft.CSharp/4.0.0-beta-22816": {
"dependencies": {
"System.Dynamic.Runtime": "4.0.10-beta-22816",
"System.Linq.Expressions": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/Microsoft.CSharp.dll"
],
"runtime": [
"lib/aspnetcore50/Microsoft.CSharp.dll"
]
},
"System.Collections/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Collections.dll"
],
"runtime": [
"lib/aspnetcore50/System.Collections.dll"
]
},
"System.Collections.Concurrent/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Collections.Concurrent.dll"
],
"runtime": [
"lib/aspnetcore50/System.Collections.Concurrent.dll"
]
},
"System.Console/4.0.0-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Console.dll"
],
"runtime": [
"lib/aspnetcore50/System.Console.dll"
]
},
"System.Data.Common/4.0.0-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Data.Common.dll"
],
"runtime": [
"lib/aspnetcore50/System.Data.Common.dll"
]
},
"System.Data.SqlClient/4.0.0-beta-22816": {
"dependencies": {
"System.Data.Common": "4.0.0-beta-22816",
"System.Globalization": "4.0.10-beta-22816",
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816",
"System.Xml.ReaderWriter": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Data.SqlClient.dll"
],
"runtime": [
"lib/aspnetcore50/System.Data.SqlClient.dll"
]
},
"System.Dynamic.Runtime/4.0.10-beta-22816": {
"dependencies": {
"System.Linq.Expressions": "4.0.10-beta-22816",
"System.ObjectModel": "4.0.10-beta-22816",
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Dynamic.Runtime.dll"
],
"runtime": [
"lib/aspnetcore50/System.Dynamic.Runtime.dll"
]
},
"System.Globalization/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Globalization.dll"
],
"runtime": [
"lib/aspnetcore50/System.Globalization.dll"
]
},
"System.IO/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.IO.dll"
],
"runtime": [
"lib/aspnetcore50/System.IO.dll"
]
},
"System.Linq/4.0.0-beta-22816": {
"dependencies": {
"System.Collections": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Linq.dll"
],
"runtime": [
"lib/aspnetcore50/System.Linq.dll"
]
},
"System.Linq.Expressions/4.0.10-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Linq.Expressions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Linq.Expressions.dll"
]
},
"System.ObjectModel/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/dnx451/Dapper.dll"
"lib/contract/System.ObjectModel.dll"
],
"runtime": [
"lib/dnx451/Dapper.dll"
"lib/aspnetcore50/System.ObjectModel.dll"
]
},
"System.Reflection/4.0.10-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.dll"
]
},
"System.Reflection.Emit/4.0.0-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.dll"
]
},
"System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.ILGeneration.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
]
},
"System.Reflection.Emit.Lightweight/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.Lightweight.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll"
]
},
"System.Reflection.Primitives/4.0.0-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Primitives.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Primitives.dll"
]
},
"System.Reflection.TypeExtensions/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.TypeExtensions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll"
]
},
"System.Runtime/4.0.20-beta-22816": {
"compile": [
"lib/contract/System.Runtime.dll"
],
"runtime": [
"lib/aspnetcore50/System.Runtime.dll"
]
},
"System.Runtime.Extensions/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Runtime.Extensions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Runtime.Extensions.dll"
]
},
"System.Text.Encoding/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Text.Encoding.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.Encoding.dll"
]
},
"System.Text.Encoding.CodePages/4.0.0-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Text.Encoding.CodePages.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll"
]
},
"System.Text.RegularExpressions/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Text.RegularExpressions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.RegularExpressions.dll"
]
},
"System.Threading/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Threading.dll"
],
"runtime": [
"lib/aspnetcore50/System.Threading.dll"
]
},
"System.Threading.Tasks/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Threading.Tasks.dll"
],
"runtime": [
"lib/aspnetcore50/System.Threading.Tasks.dll"
]
},
"System.Xml.ReaderWriter/4.0.10-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Xml.ReaderWriter.dll"
],
"runtime": [
"lib/aspnetcore50/System.Xml.ReaderWriter.dll"
]
}
}
},
"libraries": {
"Dapper/1.41-alpha": {
"sha512": "dJPrw+E8nGHRydGRUddbjGUxQBR9w4d8ISLD8QM24FsRihEJjjlww+AFb77mK78qGFwkHAnpY2k8oZfpLR61gg==",
"files": [
"Dapper.1.41-alpha.nupkg",
"Dapper.1.41-alpha.nupkg.sha512",
"Dapper.nuspec",
"lib/dnx451/Dapper.dll",
"lib/dnx451/Dapper.xml",
"lib/net40/Dapper.dll",
"lib/net40/Dapper.xml",
"lib/net45/Dapper.dll",
"lib/net45/Dapper.xml"
"Microsoft.CSharp/4.0.0-beta-22816": {
"sha512": "FGnaYvmoVLd0QTnOyHfm+C79a9CGqQAoh76Ix9++a4SdeaAB8PgpB2Vi/Uc5jcp491QvPyPQjtXCuhRfqWvNkw==",
"files": [
"License.rtf",
"Microsoft.CSharp.4.0.0-beta-22816.nupkg",
"Microsoft.CSharp.4.0.0-beta-22816.nupkg.sha512",
"Microsoft.CSharp.nuspec",
"lib/aspnetcore50/Microsoft.CSharp.dll",
"lib/contract/Microsoft.CSharp.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/Microsoft.CSharp.dll"
]
},
"System.Collections/4.0.10-beta-22816": {
"sha512": "tkVBx0CH/Xunk18S9LvNzPRqbXdIzsHbcGRtePrZCNZ9EUNuXK0dzzUl5q0KUgsQmeyUCDSw+7mwyG/pDGSpAA==",
"files": [
"License.rtf",
"System.Collections.4.0.10-beta-22816.nupkg",
"System.Collections.4.0.10-beta-22816.nupkg.sha512",
"System.Collections.nuspec",
"lib/aspnetcore50/System.Collections.dll",
"lib/contract/System.Collections.dll",
"lib/net45/System.Collections.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.dll"
]
},
"System.Collections.Concurrent/4.0.10-beta-22816": {
"sha512": "IWT4zcq0JdzU5HvJuHZbBFIntFfjmKzkfPbUWw5gwbso5nejOfVSCiRgJmUmEex0R5oJN+sX8gSrJrofzoXrww==",
"files": [
"License.rtf",
"System.Collections.Concurrent.4.0.10-beta-22816.nupkg",
"System.Collections.Concurrent.4.0.10-beta-22816.nupkg.sha512",
"System.Collections.Concurrent.nuspec",
"lib/aspnetcore50/System.Collections.Concurrent.dll",
"lib/contract/System.Collections.Concurrent.dll",
"lib/net45/System.Collections.Concurrent.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.Concurrent.dll"
]
},
"System.Console/4.0.0-beta-22816": {
"sha512": "Nj6lappTB2mN/jfONYJ88FTG+vtPWa4/KHlkjukULmOrhoA0x5IfZrbCZJdyZ9lYoS0s1o3DOerwnlw8KSS5jQ==",
"files": [
"License.rtf",
"System.Console.4.0.0-beta-22816.nupkg",
"System.Console.4.0.0-beta-22816.nupkg.sha512",
"System.Console.nuspec",
"lib/aspnetcore50/System.Console.dll",
"lib/contract/System.Console.dll",
"lib/net45/System.Console.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Console.dll"
]
},
"System.Data.Common/4.0.0-beta-22816": {
"sha512": "S529QASzN//8c99JoII7mB3/HXDiEFghpdI0BX2l6wi+pl+tWszDEvLG3fTzitZiE9x5/TsaC9+PqffajhfGIg==",
"files": [
"License.rtf",
"System.Data.Common.4.0.0-beta-22816.nupkg",
"System.Data.Common.4.0.0-beta-22816.nupkg.sha512",
"System.Data.Common.nuspec",
"lib/aspnetcore50/System.Data.Common.dll",
"lib/contract/System.Data.Common.dll",
"lib/net45/System.Data.Common.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.Common.dll"
]
},
"System.Data.SqlClient/4.0.0-beta-22816": {
"sha512": "HyCUhHjJ5iqsO9GtIqoulzPaJL7w9UeYMaazDhMbUQP1Yz2zalNQaFIV3ssFFEPmCVZwjeV+1zagDfoM0KahZQ==",
"files": [
"License.rtf",
"System.Data.SqlClient.4.0.0-beta-22816.nupkg",
"System.Data.SqlClient.4.0.0-beta-22816.nupkg.sha512",
"System.Data.SqlClient.nuspec",
"lib/aspnetcore50/System.Data.SqlClient.dll",
"lib/contract/System.Data.SqlClient.dll",
"lib/net45/System.Data.SqlClient.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.SqlClient.dll",
"native/win7/x64/sni.dll",
"native/win7/x86/sni.dll"
]
},
"System.Dynamic.Runtime/4.0.10-beta-22816": {
"sha512": "xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA==",
"files": [
"License.rtf",
"System.Dynamic.Runtime.4.0.10-beta-22816.nupkg",
"System.Dynamic.Runtime.4.0.10-beta-22816.nupkg.sha512",
"System.Dynamic.Runtime.nuspec",
"lib/aspnetcore50/System.Dynamic.Runtime.dll",
"lib/contract/System.Dynamic.Runtime.dll",
"lib/net45/System.Dynamic.Runtime.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Dynamic.Runtime.dll"
]
},
"System.Globalization/4.0.10-beta-22816": {
"sha512": "Eq2937cdQH2G3qij5gZIJ47785OwLK/+AVjyHfJKnWyhAFWoaLnQOVtaXfMVkfvp4AW7eDVkqIv0fSoS6N2q0A==",
"files": [
"License.rtf",
"System.Globalization.4.0.10-beta-22816.nupkg",
"System.Globalization.4.0.10-beta-22816.nupkg.sha512",
"System.Globalization.nuspec",
"lib/aspnetcore50/System.Globalization.dll",
"lib/contract/System.Globalization.dll",
"lib/net45/System.Globalization.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Globalization.dll"
]
},
"System.IO/4.0.10-beta-22816": {
"sha512": "/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg==",
"files": [
"License.rtf",
"System.IO.4.0.10-beta-22816.nupkg",
"System.IO.4.0.10-beta-22816.nupkg.sha512",
"System.IO.nuspec",
"lib/aspnetcore50/System.IO.dll",
"lib/contract/System.IO.dll",
"lib/net45/System.IO.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.IO.dll"
]
},
"System.Linq/4.0.0-beta-22816": {
"sha512": "zBGJfF48L17zFzfs/B8KI1yQklPul0af4a1auQTyUxjdy/HzppkIfoRgrq3yqV+YIPWDkUxu9U9bwjOj90xLXw==",
"files": [
"License.rtf",
"System.Linq.4.0.0-beta-22816.nupkg",
"System.Linq.4.0.0-beta-22816.nupkg.sha512",
"System.Linq.nuspec",
"lib/aspnetcore50/System.Linq.dll",
"lib/contract/System.Linq.dll",
"lib/net45/System.Linq.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.dll"
]
},
"System.Linq.Expressions/4.0.10-beta-22816": {
"sha512": "qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg==",
"files": [
"License.rtf",
"System.Linq.Expressions.4.0.10-beta-22816.nupkg",
"System.Linq.Expressions.4.0.10-beta-22816.nupkg.sha512",
"System.Linq.Expressions.nuspec",
"lib/aspnetcore50/System.Linq.Expressions.dll",
"lib/contract/System.Linq.Expressions.dll",
"lib/net45/System.Linq.Expressions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.Expressions.dll"
]
},
"System.ObjectModel/4.0.10-beta-22816": {
"sha512": "Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw==",
"files": [
"License.rtf",
"System.ObjectModel.4.0.10-beta-22816.nupkg",
"System.ObjectModel.4.0.10-beta-22816.nupkg.sha512",
"System.ObjectModel.nuspec",
"lib/aspnetcore50/System.ObjectModel.dll",
"lib/contract/System.ObjectModel.dll",
"lib/net45/System.ObjectModel.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.ObjectModel.dll"
]
},
"System.Reflection/4.0.10-beta-22816": {
"sha512": "vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg==",
"files": [
"License.rtf",
"System.Reflection.4.0.10-beta-22816.nupkg",
"System.Reflection.4.0.10-beta-22816.nupkg.sha512",
"System.Reflection.nuspec",
"lib/aspnetcore50/System.Reflection.dll",
"lib/contract/System.Reflection.dll",
"lib/net45/System.Reflection.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.dll"
]
},
"System.Reflection.Emit/4.0.0-beta-22816": {
"sha512": "vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA==",
"files": [
"License.rtf",
"System.Reflection.Emit.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.dll",
"lib/contract/System.Reflection.Emit.dll",
"lib/net45/System.Reflection.Emit.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.dll"
]
},
"System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": {
"sha512": "dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ==",
"files": [
"License.rtf",
"System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.ILGeneration.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll",
"lib/contract/System.Reflection.Emit.ILGeneration.dll",
"lib/net45/System.Reflection.Emit.ILGeneration.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
]
},
"System.Reflection.Emit.Lightweight/4.0.0-beta-22816": {
"sha512": "86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw==",
"files": [
"License.rtf",
"System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.Lightweight.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll",
"lib/contract/System.Reflection.Emit.Lightweight.dll",
"lib/net45/System.Reflection.Emit.Lightweight.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.Lightweight.dll"
]
},
"System.Reflection.Primitives/4.0.0-beta-22816": {
"sha512": "LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q==",
"files": [
"License.rtf",
"System.Reflection.Primitives.4.0.0-beta-22816.nupkg",
"System.Reflection.Primitives.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Primitives.nuspec",
"lib/aspnetcore50/System.Reflection.Primitives.dll",
"lib/contract/System.Reflection.Primitives.dll",
"lib/net45/System.Reflection.Primitives.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Primitives.dll"
]
},
"System.Reflection.TypeExtensions/4.0.0-beta-22816": {
"sha512": "VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg==",
"files": [
"License.rtf",
"System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg",
"System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.TypeExtensions.nuspec",
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll",
"lib/contract/System.Reflection.TypeExtensions.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.TypeExtensions.dll"
]
},
"System.Runtime/4.0.20-beta-22816": {
"sha512": "sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q==",
"files": [
"License.rtf",
"System.Runtime.4.0.20-beta-22816.nupkg",
"System.Runtime.4.0.20-beta-22816.nupkg.sha512",
"System.Runtime.nuspec",
"lib/aspnetcore50/System.Runtime.dll",
"lib/contract/System.Runtime.dll",
"lib/net45/System.Runtime.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.dll"
]
},
"System.Runtime.Extensions/4.0.10-beta-22816": {
"sha512": "VyMZA1a7c1j9lbSarndGwFLEpip5uhl3oZTjW2fR8Lte0lWKB8Aro8rRoEHsWd5vUd3/kYDOvIXvGpCKBMlW1g==",
"files": [
"License.rtf",
"System.Runtime.Extensions.4.0.10-beta-22816.nupkg",
"System.Runtime.Extensions.4.0.10-beta-22816.nupkg.sha512",
"System.Runtime.Extensions.nuspec",
"lib/aspnetcore50/System.Runtime.Extensions.dll",
"lib/contract/System.Runtime.Extensions.dll",
"lib/net45/System.Runtime.Extensions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.Extensions.dll"
]
},
"System.Text.Encoding/4.0.10-beta-22816": {
"sha512": "QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw==",
"files": [
"License.rtf",
"System.Text.Encoding.4.0.10-beta-22816.nupkg",
"System.Text.Encoding.4.0.10-beta-22816.nupkg.sha512",
"System.Text.Encoding.nuspec",
"lib/aspnetcore50/System.Text.Encoding.dll",
"lib/contract/System.Text.Encoding.dll",
"lib/net45/System.Text.Encoding.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.dll"
]
},
"System.Text.Encoding.CodePages/4.0.0-beta-22816": {
"sha512": "q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q==",
"files": [
"License.rtf",
"System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg",
"System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg.sha512",
"System.Text.Encoding.CodePages.nuspec",
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll",
"lib/contract/System.Text.Encoding.CodePages.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.CodePages.dll"
]
},
"System.Text.RegularExpressions/4.0.10-beta-22816": {
"sha512": "f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA==",
"files": [
"License.rtf",
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg",
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg.sha512",
"System.Text.RegularExpressions.nuspec",
"lib/aspnetcore50/System.Text.RegularExpressions.dll",
"lib/contract/System.Text.RegularExpressions.dll",
"lib/net45/System.Text.RegularExpressions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.RegularExpressions.dll"
]
},
"System.Threading/4.0.10-beta-22816": {
"sha512": "tNAZqIJaAhnHpiEJdvGby7EFfirhD3aX+FF6vQBnHrk+bWVv4yAQ3k/skF7FBJIhMozenT41/1QVVwtTSR3HOQ==",
"files": [
"License.rtf",
"System.Threading.4.0.10-beta-22816.nupkg",
"System.Threading.4.0.10-beta-22816.nupkg.sha512",
"System.Threading.nuspec",
"lib/aspnetcore50/System.Threading.dll",
"lib/contract/System.Threading.dll",
"lib/net45/System.Threading.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.dll"
]
},
"System.Threading.Tasks/4.0.10-beta-22816": {
"sha512": "e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA==",
"files": [
"License.rtf",
"System.Threading.Tasks.4.0.10-beta-22816.nupkg",
"System.Threading.Tasks.4.0.10-beta-22816.nupkg.sha512",
"System.Threading.Tasks.nuspec",
"lib/aspnetcore50/System.Threading.Tasks.dll",
"lib/contract/System.Threading.Tasks.dll",
"lib/net45/System.Threading.Tasks.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Tasks.dll"
]
},
"System.Xml.ReaderWriter/4.0.10-beta-22816": {
"sha512": "G0aLPtC/phTfiJPwe0VA3tB3x8YFQ1dHFuE1xaHNr9eQm/AfBp4Pk+fn3s7ABJDus/T89EtIHQ9C+O6VmqXIQQ==",
"files": [
"License.rtf",
"System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg",
"System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg.sha512",
"System.Xml.ReaderWriter.nuspec",
"lib/aspnetcore50/System.Xml.ReaderWriter.dll",
"lib/contract/System.Xml.ReaderWriter.dll",
"lib/net45/System.Xml.ReaderWriter.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Xml.ReaderWriter.dll"
]
}
},
......@@ -60,8 +690,15 @@
".NETFramework,Version=v4.5": [
"framework/System.Data >= 4.0.0.0"
],
".NETFramework,Version=v4.0": [
"framework/System.Data >= 4.0.0.0"
],
"DNX,Version=v4.5.1": [
"framework/System.Data >= 4.0.0.0"
],
"DNXCore,Version=v5.0": [
"System.Console >= 4.0.0-beta-*",
"System.Reflection >= 4.0.10-beta-*"
]
}
}
\ No newline at end of file
......@@ -14,6 +14,9 @@
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<AssemblyName>Dapper</AssemblyName>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<AssemblyName>Dapper</AssemblyName>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
......
{
"authors": [ "Sam Saffron", "Marc Gravell" ],
"description": "A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc..",
"version": "1.41-alpha",
"version": "1.41-beta",
"compile": [ "../Dapper NET40/*.cs", "../Dapper NET45/*.cs" ],
"frameworks": {
"net45": {
"compilationOptions": { "define": [ "ASYNC" ], "warningsAsErrors": true },
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"frameworkAssemblies": {
"System.Data": "4.0.0.0"
......@@ -28,15 +29,25 @@
"System.Data": "4.0.0.0"
}
},
//"dnxcore50": {
// "dependencies": {
// "System.Runtime": "4.0.20-beta-22716",
// "System.Data.Common": "4.0.0-beta-*",
// },
// "frameworkAssemblies": {
// //
// }
//}
"dnxcore50": {
"compilationOptions": { "define": [ ], "warningsAsErrors": true },
"dependencies": {
"System.Text.RegularExpressions": "4.0.10-beta-*",
"System.Collections": "4.0.10-beta-*",
"System.Collections.Concurrent": "4.0.10-beta-*",
"System.Linq": "4.0.0-beta-*",
"System.Threading": "4.0.10-beta-*",
"Microsoft.CSharp": "4.0.0-beta-*",
"System.Reflection": "4.0.10-beta-*",
"System.Reflection.Emit": "4.0.0-beta-*",
"System.Reflection.Emit.ILGeneration": "4.0.0-beta-*",
"System.Reflection.Emit.Lightweight": "4.0.0-beta-*",
"System.Reflection.TypeExtensions": "4.0.0-beta-*",
"System.Data.Common": "4.0.0-beta-*",
"System.Data.SqlClient": "4.0.0-beta-*",
"System.Runtime.Extensions": "4.0.10-beta-*",
"System.Text.Encoding.CodePages": "4.0.0-beta-*"
}
}
}
}
......@@ -3,76 +3,665 @@
"version": -9997,
"targets": {
".NETFramework,Version=v4.5": {
"Dapper/1.41-alpha": {
"System.Runtime/4.0.20-beta-22816": {
"frameworkAssemblies": [
"System.Data",
"mscorlib",
"System",
"System.Core",
"Microsoft.CSharp"
"System.ComponentModel.Composition",
"System.Core"
],
"compile": [
"lib/net45/Dapper.dll"
"lib/net45/System.Runtime.dll"
],
"runtime": [
"lib/net45/Dapper.dll"
"lib/net45/System.Runtime.dll"
]
}
},
".NETFramework,Version=v4.0": {
"Dapper/1.41-alpha": {
"frameworkAssemblies": [
"System.Data",
"mscorlib",
"System",
"System.Core",
"Microsoft.CSharp"
".NETFramework,Version=v4.0": {},
"DNX,Version=v4.5.1": {},
"DNXCore,Version=v5.0": {
"Microsoft.CSharp/4.0.0-beta-22816": {
"dependencies": {
"System.Dynamic.Runtime": "4.0.10-beta-22816",
"System.Linq.Expressions": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/Microsoft.CSharp.dll"
],
"runtime": [
"lib/aspnetcore50/Microsoft.CSharp.dll"
]
},
"System.Collections/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/net40/Dapper.dll"
"lib/contract/System.Collections.dll"
],
"runtime": [
"lib/net40/Dapper.dll"
"lib/aspnetcore50/System.Collections.dll"
]
}
},
"DNX,Version=v4.5.1": {
"Dapper/1.41-alpha": {
"frameworkAssemblies": [
"System.Data",
"mscorlib",
"System",
"System.Core",
"Microsoft.CSharp"
},
"System.Collections.Concurrent/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Collections.Concurrent.dll"
],
"runtime": [
"lib/aspnetcore50/System.Collections.Concurrent.dll"
]
},
"System.Data.Common/4.0.0-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Data.Common.dll"
],
"runtime": [
"lib/aspnetcore50/System.Data.Common.dll"
]
},
"System.Data.SqlClient/4.0.0-beta-22816": {
"dependencies": {
"System.Data.Common": "4.0.0-beta-22816",
"System.Globalization": "4.0.10-beta-22816",
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816",
"System.Xml.ReaderWriter": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Data.SqlClient.dll"
],
"runtime": [
"lib/aspnetcore50/System.Data.SqlClient.dll"
]
},
"System.Dynamic.Runtime/4.0.10-beta-22816": {
"dependencies": {
"System.Linq.Expressions": "4.0.10-beta-22816",
"System.ObjectModel": "4.0.10-beta-22816",
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Dynamic.Runtime.dll"
],
"runtime": [
"lib/aspnetcore50/System.Dynamic.Runtime.dll"
]
},
"System.Globalization/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Globalization.dll"
],
"runtime": [
"lib/aspnetcore50/System.Globalization.dll"
]
},
"System.IO/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.IO.dll"
],
"runtime": [
"lib/aspnetcore50/System.IO.dll"
]
},
"System.Linq/4.0.0-beta-22816": {
"dependencies": {
"System.Collections": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Linq.dll"
],
"runtime": [
"lib/aspnetcore50/System.Linq.dll"
]
},
"System.Linq.Expressions/4.0.10-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Linq.Expressions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Linq.Expressions.dll"
]
},
"System.ObjectModel/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.ObjectModel.dll"
],
"runtime": [
"lib/aspnetcore50/System.ObjectModel.dll"
]
},
"System.Reflection/4.0.10-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.dll"
]
},
"System.Reflection.Emit/4.0.0-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.dll"
]
},
"System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.ILGeneration.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
]
},
"System.Reflection.Emit.Lightweight/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Reflection.Emit.ILGeneration": "4.0.0-beta-22816",
"System.Reflection.Primitives": "4.0.0-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Emit.Lightweight.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll"
]
},
"System.Reflection.Primitives/4.0.0-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.Primitives.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.Primitives.dll"
]
},
"System.Reflection.TypeExtensions/4.0.0-beta-22816": {
"dependencies": {
"System.Reflection": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Reflection.TypeExtensions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll"
]
},
"System.Runtime/4.0.20-beta-22816": {
"compile": [
"lib/contract/System.Runtime.dll"
],
"runtime": [
"lib/aspnetcore50/System.Runtime.dll"
]
},
"System.Runtime.Extensions/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Runtime.Extensions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Runtime.Extensions.dll"
]
},
"System.Text.Encoding/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Text.Encoding.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.Encoding.dll"
]
},
"System.Text.Encoding.CodePages/4.0.0-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Text.Encoding.CodePages.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll"
]
},
"System.Text.RegularExpressions/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Text.RegularExpressions.dll"
],
"runtime": [
"lib/aspnetcore50/System.Text.RegularExpressions.dll"
]
},
"System.Threading/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/contract/System.Threading.dll"
],
"runtime": [
"lib/aspnetcore50/System.Threading.dll"
]
},
"System.Threading.Tasks/4.0.10-beta-22816": {
"dependencies": {
"System.Runtime": "4.0.20-beta-22816"
},
"compile": [
"lib/contract/System.Threading.Tasks.dll"
],
"runtime": [
"lib/aspnetcore50/System.Threading.Tasks.dll"
]
},
"System.Xml.ReaderWriter/4.0.10-beta-22816": {
"dependencies": {
"System.IO": "4.0.10-beta-22816",
"System.Runtime": "4.0.20-beta-22816",
"System.Text.Encoding": "4.0.10-beta-22816",
"System.Threading.Tasks": "4.0.10-beta-22816"
},
"compile": [
"lib/dnx451/Dapper.dll"
"lib/contract/System.Xml.ReaderWriter.dll"
],
"runtime": [
"lib/dnx451/Dapper.dll"
"lib/aspnetcore50/System.Xml.ReaderWriter.dll"
]
}
}
},
"libraries": {
"Dapper/1.41-alpha": {
"sha512": "dJPrw+E8nGHRydGRUddbjGUxQBR9w4d8ISLD8QM24FsRihEJjjlww+AFb77mK78qGFwkHAnpY2k8oZfpLR61gg==",
"files": [
"Dapper.1.41-alpha.nupkg",
"Dapper.1.41-alpha.nupkg.sha512",
"Dapper.nuspec",
"lib/dnx451/Dapper.dll",
"lib/dnx451/Dapper.xml",
"lib/net40/Dapper.dll",
"lib/net40/Dapper.xml",
"lib/net45/Dapper.dll",
"lib/net45/Dapper.xml"
"Microsoft.CSharp/4.0.0-beta-22816": {
"sha512": "FGnaYvmoVLd0QTnOyHfm+C79a9CGqQAoh76Ix9++a4SdeaAB8PgpB2Vi/Uc5jcp491QvPyPQjtXCuhRfqWvNkw==",
"files": [
"License.rtf",
"Microsoft.CSharp.4.0.0-beta-22816.nupkg",
"Microsoft.CSharp.4.0.0-beta-22816.nupkg.sha512",
"Microsoft.CSharp.nuspec",
"lib/aspnetcore50/Microsoft.CSharp.dll",
"lib/contract/Microsoft.CSharp.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/Microsoft.CSharp.dll"
]
},
"System.Collections/4.0.10-beta-22816": {
"sha512": "tkVBx0CH/Xunk18S9LvNzPRqbXdIzsHbcGRtePrZCNZ9EUNuXK0dzzUl5q0KUgsQmeyUCDSw+7mwyG/pDGSpAA==",
"files": [
"License.rtf",
"System.Collections.4.0.10-beta-22816.nupkg",
"System.Collections.4.0.10-beta-22816.nupkg.sha512",
"System.Collections.nuspec",
"lib/aspnetcore50/System.Collections.dll",
"lib/contract/System.Collections.dll",
"lib/net45/System.Collections.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.dll"
]
},
"System.Collections.Concurrent/4.0.10-beta-22816": {
"sha512": "IWT4zcq0JdzU5HvJuHZbBFIntFfjmKzkfPbUWw5gwbso5nejOfVSCiRgJmUmEex0R5oJN+sX8gSrJrofzoXrww==",
"files": [
"License.rtf",
"System.Collections.Concurrent.4.0.10-beta-22816.nupkg",
"System.Collections.Concurrent.4.0.10-beta-22816.nupkg.sha512",
"System.Collections.Concurrent.nuspec",
"lib/aspnetcore50/System.Collections.Concurrent.dll",
"lib/contract/System.Collections.Concurrent.dll",
"lib/net45/System.Collections.Concurrent.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Collections.Concurrent.dll"
]
},
"System.Data.Common/4.0.0-beta-22816": {
"sha512": "S529QASzN//8c99JoII7mB3/HXDiEFghpdI0BX2l6wi+pl+tWszDEvLG3fTzitZiE9x5/TsaC9+PqffajhfGIg==",
"files": [
"License.rtf",
"System.Data.Common.4.0.0-beta-22816.nupkg",
"System.Data.Common.4.0.0-beta-22816.nupkg.sha512",
"System.Data.Common.nuspec",
"lib/aspnetcore50/System.Data.Common.dll",
"lib/contract/System.Data.Common.dll",
"lib/net45/System.Data.Common.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.Common.dll"
]
},
"System.Data.SqlClient/4.0.0-beta-22816": {
"sha512": "HyCUhHjJ5iqsO9GtIqoulzPaJL7w9UeYMaazDhMbUQP1Yz2zalNQaFIV3ssFFEPmCVZwjeV+1zagDfoM0KahZQ==",
"files": [
"License.rtf",
"System.Data.SqlClient.4.0.0-beta-22816.nupkg",
"System.Data.SqlClient.4.0.0-beta-22816.nupkg.sha512",
"System.Data.SqlClient.nuspec",
"lib/aspnetcore50/System.Data.SqlClient.dll",
"lib/contract/System.Data.SqlClient.dll",
"lib/net45/System.Data.SqlClient.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Data.SqlClient.dll",
"native/win7/x64/sni.dll",
"native/win7/x86/sni.dll"
]
},
"System.Dynamic.Runtime/4.0.10-beta-22816": {
"sha512": "xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA==",
"files": [
"License.rtf",
"System.Dynamic.Runtime.4.0.10-beta-22816.nupkg",
"System.Dynamic.Runtime.4.0.10-beta-22816.nupkg.sha512",
"System.Dynamic.Runtime.nuspec",
"lib/aspnetcore50/System.Dynamic.Runtime.dll",
"lib/contract/System.Dynamic.Runtime.dll",
"lib/net45/System.Dynamic.Runtime.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Dynamic.Runtime.dll"
]
},
"System.Globalization/4.0.10-beta-22816": {
"sha512": "Eq2937cdQH2G3qij5gZIJ47785OwLK/+AVjyHfJKnWyhAFWoaLnQOVtaXfMVkfvp4AW7eDVkqIv0fSoS6N2q0A==",
"files": [
"License.rtf",
"System.Globalization.4.0.10-beta-22816.nupkg",
"System.Globalization.4.0.10-beta-22816.nupkg.sha512",
"System.Globalization.nuspec",
"lib/aspnetcore50/System.Globalization.dll",
"lib/contract/System.Globalization.dll",
"lib/net45/System.Globalization.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Globalization.dll"
]
},
"System.IO/4.0.10-beta-22816": {
"sha512": "/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg==",
"files": [
"License.rtf",
"System.IO.4.0.10-beta-22816.nupkg",
"System.IO.4.0.10-beta-22816.nupkg.sha512",
"System.IO.nuspec",
"lib/aspnetcore50/System.IO.dll",
"lib/contract/System.IO.dll",
"lib/net45/System.IO.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.IO.dll"
]
},
"System.Linq/4.0.0-beta-22816": {
"sha512": "zBGJfF48L17zFzfs/B8KI1yQklPul0af4a1auQTyUxjdy/HzppkIfoRgrq3yqV+YIPWDkUxu9U9bwjOj90xLXw==",
"files": [
"License.rtf",
"System.Linq.4.0.0-beta-22816.nupkg",
"System.Linq.4.0.0-beta-22816.nupkg.sha512",
"System.Linq.nuspec",
"lib/aspnetcore50/System.Linq.dll",
"lib/contract/System.Linq.dll",
"lib/net45/System.Linq.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.dll"
]
},
"System.Linq.Expressions/4.0.10-beta-22816": {
"sha512": "qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg==",
"files": [
"License.rtf",
"System.Linq.Expressions.4.0.10-beta-22816.nupkg",
"System.Linq.Expressions.4.0.10-beta-22816.nupkg.sha512",
"System.Linq.Expressions.nuspec",
"lib/aspnetcore50/System.Linq.Expressions.dll",
"lib/contract/System.Linq.Expressions.dll",
"lib/net45/System.Linq.Expressions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Linq.Expressions.dll"
]
},
"System.ObjectModel/4.0.10-beta-22816": {
"sha512": "Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw==",
"files": [
"License.rtf",
"System.ObjectModel.4.0.10-beta-22816.nupkg",
"System.ObjectModel.4.0.10-beta-22816.nupkg.sha512",
"System.ObjectModel.nuspec",
"lib/aspnetcore50/System.ObjectModel.dll",
"lib/contract/System.ObjectModel.dll",
"lib/net45/System.ObjectModel.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.ObjectModel.dll"
]
},
"System.Reflection/4.0.10-beta-22816": {
"sha512": "vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg==",
"files": [
"License.rtf",
"System.Reflection.4.0.10-beta-22816.nupkg",
"System.Reflection.4.0.10-beta-22816.nupkg.sha512",
"System.Reflection.nuspec",
"lib/aspnetcore50/System.Reflection.dll",
"lib/contract/System.Reflection.dll",
"lib/net45/System.Reflection.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.dll"
]
},
"System.Reflection.Emit/4.0.0-beta-22816": {
"sha512": "vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA==",
"files": [
"License.rtf",
"System.Reflection.Emit.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.dll",
"lib/contract/System.Reflection.Emit.dll",
"lib/net45/System.Reflection.Emit.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.dll"
]
},
"System.Reflection.Emit.ILGeneration/4.0.0-beta-22816": {
"sha512": "dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ==",
"files": [
"License.rtf",
"System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.ILGeneration.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.ILGeneration.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll",
"lib/contract/System.Reflection.Emit.ILGeneration.dll",
"lib/net45/System.Reflection.Emit.ILGeneration.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
]
},
"System.Reflection.Emit.Lightweight/4.0.0-beta-22816": {
"sha512": "86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw==",
"files": [
"License.rtf",
"System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg",
"System.Reflection.Emit.Lightweight.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Emit.Lightweight.nuspec",
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll",
"lib/contract/System.Reflection.Emit.Lightweight.dll",
"lib/net45/System.Reflection.Emit.Lightweight.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Emit.Lightweight.dll"
]
},
"System.Reflection.Primitives/4.0.0-beta-22816": {
"sha512": "LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q==",
"files": [
"License.rtf",
"System.Reflection.Primitives.4.0.0-beta-22816.nupkg",
"System.Reflection.Primitives.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.Primitives.nuspec",
"lib/aspnetcore50/System.Reflection.Primitives.dll",
"lib/contract/System.Reflection.Primitives.dll",
"lib/net45/System.Reflection.Primitives.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.Primitives.dll"
]
},
"System.Reflection.TypeExtensions/4.0.0-beta-22816": {
"sha512": "VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg==",
"files": [
"License.rtf",
"System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg",
"System.Reflection.TypeExtensions.4.0.0-beta-22816.nupkg.sha512",
"System.Reflection.TypeExtensions.nuspec",
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll",
"lib/contract/System.Reflection.TypeExtensions.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Reflection.TypeExtensions.dll"
]
},
"System.Runtime/4.0.20-beta-22816": {
"sha512": "sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q==",
"files": [
"License.rtf",
"System.Runtime.4.0.20-beta-22816.nupkg",
"System.Runtime.4.0.20-beta-22816.nupkg.sha512",
"System.Runtime.nuspec",
"lib/aspnetcore50/System.Runtime.dll",
"lib/contract/System.Runtime.dll",
"lib/net45/System.Runtime.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.dll"
]
},
"System.Runtime.Extensions/4.0.10-beta-22816": {
"sha512": "VyMZA1a7c1j9lbSarndGwFLEpip5uhl3oZTjW2fR8Lte0lWKB8Aro8rRoEHsWd5vUd3/kYDOvIXvGpCKBMlW1g==",
"files": [
"License.rtf",
"System.Runtime.Extensions.4.0.10-beta-22816.nupkg",
"System.Runtime.Extensions.4.0.10-beta-22816.nupkg.sha512",
"System.Runtime.Extensions.nuspec",
"lib/aspnetcore50/System.Runtime.Extensions.dll",
"lib/contract/System.Runtime.Extensions.dll",
"lib/net45/System.Runtime.Extensions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Runtime.Extensions.dll"
]
},
"System.Text.Encoding/4.0.10-beta-22816": {
"sha512": "QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw==",
"files": [
"License.rtf",
"System.Text.Encoding.4.0.10-beta-22816.nupkg",
"System.Text.Encoding.4.0.10-beta-22816.nupkg.sha512",
"System.Text.Encoding.nuspec",
"lib/aspnetcore50/System.Text.Encoding.dll",
"lib/contract/System.Text.Encoding.dll",
"lib/net45/System.Text.Encoding.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.dll"
]
},
"System.Text.Encoding.CodePages/4.0.0-beta-22816": {
"sha512": "q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q==",
"files": [
"License.rtf",
"System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg",
"System.Text.Encoding.CodePages.4.0.0-beta-22816.nupkg.sha512",
"System.Text.Encoding.CodePages.nuspec",
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll",
"lib/contract/System.Text.Encoding.CodePages.dll",
"lib/net45/_._",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.Encoding.CodePages.dll"
]
},
"System.Text.RegularExpressions/4.0.10-beta-22816": {
"sha512": "f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA==",
"files": [
"License.rtf",
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg",
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg.sha512",
"System.Text.RegularExpressions.nuspec",
"lib/aspnetcore50/System.Text.RegularExpressions.dll",
"lib/contract/System.Text.RegularExpressions.dll",
"lib/net45/System.Text.RegularExpressions.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.RegularExpressions.dll"
]
},
"System.Threading/4.0.10-beta-22816": {
"sha512": "tNAZqIJaAhnHpiEJdvGby7EFfirhD3aX+FF6vQBnHrk+bWVv4yAQ3k/skF7FBJIhMozenT41/1QVVwtTSR3HOQ==",
"files": [
"License.rtf",
"System.Threading.4.0.10-beta-22816.nupkg",
"System.Threading.4.0.10-beta-22816.nupkg.sha512",
"System.Threading.nuspec",
"lib/aspnetcore50/System.Threading.dll",
"lib/contract/System.Threading.dll",
"lib/net45/System.Threading.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.dll"
]
},
"System.Threading.Tasks/4.0.10-beta-22816": {
"sha512": "e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA==",
"files": [
"License.rtf",
"System.Threading.Tasks.4.0.10-beta-22816.nupkg",
"System.Threading.Tasks.4.0.10-beta-22816.nupkg.sha512",
"System.Threading.Tasks.nuspec",
"lib/aspnetcore50/System.Threading.Tasks.dll",
"lib/contract/System.Threading.Tasks.dll",
"lib/net45/System.Threading.Tasks.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Tasks.dll"
]
},
"System.Xml.ReaderWriter/4.0.10-beta-22816": {
"sha512": "G0aLPtC/phTfiJPwe0VA3tB3x8YFQ1dHFuE1xaHNr9eQm/AfBp4Pk+fn3s7ABJDus/T89EtIHQ9C+O6VmqXIQQ==",
"files": [
"License.rtf",
"System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg",
"System.Xml.ReaderWriter.4.0.10-beta-22816.nupkg.sha512",
"System.Xml.ReaderWriter.nuspec",
"lib/aspnetcore50/System.Xml.ReaderWriter.dll",
"lib/contract/System.Xml.ReaderWriter.dll",
"lib/net45/System.Xml.ReaderWriter.dll",
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Xml.ReaderWriter.dll"
]
}
},
"projectFileDependencyGroups": {
"": [],
".NETFramework,Version=v4.5": [
"System.Runtime >= 4.0.20-beta-22816",
"framework/System.Data >= 4.0.0.0"
],
".NETFramework,Version=v4.0": [
......@@ -80,6 +669,23 @@
],
"DNX,Version=v4.5.1": [
"framework/System.Data >= 4.0.0.0"
],
"DNXCore,Version=v5.0": [
"System.Text.RegularExpressions >= 4.0.10-beta-*",
"System.Collections >= 4.0.10-beta-*",
"System.Collections.Concurrent >= 4.0.10-beta-*",
"System.Linq >= 4.0.0-beta-*",
"System.Threading >= 4.0.10-beta-*",
"Microsoft.CSharp >= 4.0.0-beta-*",
"System.Reflection >= 4.0.10-beta-*",
"System.Reflection.Emit >= 4.0.0-beta-*",
"System.Reflection.Emit.ILGeneration >= 4.0.0-beta-*",
"System.Reflection.Emit.Lightweight >= 4.0.0-beta-*",
"System.Reflection.TypeExtensions >= 4.0.0-beta-*",
"System.Data.Common >= 4.0.0-beta-*",
"System.Data.SqlClient >= 4.0.0-beta-*",
"System.Runtime.Extensions >= 4.0.10-beta-*",
"System.Text.Encoding.CodePages >= 4.0.0-beta-*"
]
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册