Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
Dapper
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tsai
Dapper
Commits
f32d318f
Commit
f32d318f
authored
May 05, 2015
by
Marc Gravell
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'CoreCLR'
Conflicts: Dapper NET40/SqlMapper.cs
parents
34371620
b52d3113
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
4394 additions
and
341 deletions
+4394
-341
SqlMapper.cs
Dapper NET40/SqlMapper.cs
+488
-74
Program.cs
Dapper.DNX.Tests/Program.cs
+0
-36
project.json
Dapper.DNX.Tests/project.json
+47
-31
project.lock.json
Dapper.DNX.Tests/project.lock.json
+1886
-55
Dapper.DNX.sln
Dapper.DNX.sln
+4
-1
Dapper.xproj
Dapper/Dapper.xproj
+3
-0
project.json
Dapper/project.json
+36
-11
project.lock.json
Dapper/project.lock.json
+1587
-70
DapperTests NET35.csproj
DapperTests NET35/DapperTests NET35.csproj
+3
-2
DapperTests NET45.csproj
DapperTests NET45/DapperTests NET45.csproj
+2
-2
Assert.cs
Tests/Assert.cs
+4
-0
DapperTests NET40.csproj
Tests/DapperTests NET40.csproj
+3
-2
Program.cs
Tests/Program.cs
+77
-11
Tests.cs
Tests/Tests.cs
+254
-46
No files found.
Dapper NET40/SqlMapper.cs
View file @
f32d318f
...
@@ -7,7 +7,16 @@
...
@@ -7,7 +7,16 @@
*/
*/
#if DNXCORE50
#if DNXCORE50
using
IDbDataParameter
=
System
.
Data
.
Common
.
DbParameter
;
using
IDbDataParameter
=
global
::
System
.
Data
.
Common
.
DbParameter
;
using
IDataParameter
=
global
::
System
.
Data
.
Common
.
DbParameter
;
using
IDbTransaction
=
global
::
System
.
Data
.
Common
.
DbTransaction
;
using
IDbConnection
=
global
::
System
.
Data
.
Common
.
DbConnection
;
using
IDbCommand
=
global
::
System
.
Data
.
Common
.
DbCommand
;
using
IDataReader
=
global
::
System
.
Data
.
Common
.
DbDataReader
;
using
IDataRecord
=
global
::
System
.
Data
.
Common
.
DbDataReader
;
using
IDataParameterCollection
=
global
::
System
.
Data
.
Common
.
DbParameterCollection
;
using
DataException
=
global
::
System
.
InvalidOperationException
;
using
ApplicationException
=
global
::
System
.
InvalidOperationException
;
#endif
#endif
using
System
;
using
System
;
...
@@ -24,6 +33,7 @@
...
@@ -24,6 +33,7 @@
using
System.Diagnostics
;
using
System.Diagnostics
;
using
System.Globalization
;
using
System.Globalization
;
using
System.Linq.Expressions
;
using
System.Linq.Expressions
;
using
System.Data.Common
;
namespace
Dapper
namespace
Dapper
{
{
...
@@ -312,7 +322,7 @@ public interface ITypeHandler
...
@@ -312,7 +322,7 @@ public interface ITypeHandler
/// <returns>The typed value</returns>
/// <returns>The typed value</returns>
object
Parse
(
Type
destinationType
,
object
value
);
object
Parse
(
Type
destinationType
,
object
value
);
}
}
#if !DNXCORE50
/// <summary>
/// <summary>
/// A type handler for data-types that are supported by the underlying provider, but which need
/// A type handler for data-types that are supported by the underlying provider, but which need
/// a well-known UdtTypeName to be specified
/// a well-known UdtTypeName to be specified
...
@@ -335,13 +345,14 @@ object ITypeHandler.Parse(Type destinationType, object value)
...
@@ -335,13 +345,14 @@ object ITypeHandler.Parse(Type destinationType, object value)
void
ITypeHandler
.
SetValue
(
IDbDataParameter
parameter
,
object
value
)
void
ITypeHandler
.
SetValue
(
IDbDataParameter
parameter
,
object
value
)
{
{
parameter
.
Value
=
((
object
)
value
)
??
DBNull
.
Value
;
parameter
.
Value
=
SanitizeParameterValue
(
value
)
;
if
(
parameter
is
System
.
Data
.
SqlClient
.
SqlParameter
)
if
(
parameter
is
System
.
Data
.
SqlClient
.
SqlParameter
)
{
{
((
System
.
Data
.
SqlClient
.
SqlParameter
)
parameter
).
UdtTypeName
=
udtTypeName
;
((
System
.
Data
.
SqlClient
.
SqlParameter
)
parameter
).
UdtTypeName
=
udtTypeName
;
}
}
}
}
}
}
#endif
/// <summary>
/// <summary>
/// Base-class for simple type-handlers
/// Base-class for simple type-handlers
...
@@ -726,8 +737,9 @@ static SqlMapper()
...
@@ -726,8 +737,9 @@ static SqlMapper()
typeMap
[
typeof
(
DateTimeOffset
?)]
=
DbType
.
DateTimeOffset
;
typeMap
[
typeof
(
DateTimeOffset
?)]
=
DbType
.
DateTimeOffset
;
typeMap
[
typeof
(
TimeSpan
?)]
=
DbType
.
Time
;
typeMap
[
typeof
(
TimeSpan
?)]
=
DbType
.
Time
;
typeMap
[
typeof
(
object
)]
=
DbType
.
Object
;
typeMap
[
typeof
(
object
)]
=
DbType
.
Object
;
#if !DNXCORE50
AddTypeHandlerImpl
(
typeof
(
DataTable
),
new
DataTableHandler
(),
false
);
AddTypeHandlerImpl
(
typeof
(
DataTable
),
new
DataTableHandler
(),
false
);
#endif
}
}
/// <summary>
/// <summary>
...
@@ -736,7 +748,9 @@ static SqlMapper()
...
@@ -736,7 +748,9 @@ static SqlMapper()
public
static
void
ResetTypeHandlers
()
public
static
void
ResetTypeHandlers
()
{
{
typeHandlers
=
new
Dictionary
<
Type
,
ITypeHandler
>();
typeHandlers
=
new
Dictionary
<
Type
,
ITypeHandler
>();
#if !DNXCORE50
AddTypeHandlerImpl
(
typeof
(
DataTable
),
new
DataTableHandler
(),
true
);
AddTypeHandlerImpl
(
typeof
(
DataTable
),
new
DataTableHandler
(),
true
);
#endif
}
}
/// <summary>
/// <summary>
/// Configure the specified type to be mapped to a given db-type
/// 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
...
@@ -770,7 +784,7 @@ public static void AddTypeHandlerImpl(Type type, ITypeHandler handler, bool clon
if
(
type
==
null
)
throw
new
ArgumentNullException
(
"type"
);
if
(
type
==
null
)
throw
new
ArgumentNullException
(
"type"
);
Type
secondary
=
null
;
Type
secondary
=
null
;
if
(
type
.
IsValueType
)
if
(
type
.
IsValueType
()
)
{
{
var
underlying
=
Nullable
.
GetUnderlyingType
(
type
);
var
underlying
=
Nullable
.
GetUnderlyingType
(
type
);
if
(
underlying
==
null
)
if
(
underlying
==
null
)
...
@@ -823,7 +837,10 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler)
...
@@ -823,7 +837,10 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler)
/// Not intended for direct usage
/// Not intended for direct usage
/// </summary>
/// </summary>
[
Obsolete
(
"Not intended for direct usage"
,
false
)]
[
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
>
public
static
class
TypeHandlerCache
<
T
>
{
{
/// <summary>
/// <summary>
...
@@ -862,7 +879,11 @@ internal static void SetHandler(ITypeHandler handler)
...
@@ -862,7 +879,11 @@ internal static void SetHandler(ITypeHandler handler)
/// <summary>
/// <summary>
/// Get the DbType that maps to a given value
/// Get the DbType that maps to a given value
/// </summary>
/// </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
)
public
static
DbType
GetDbType
(
object
value
)
{
{
if
(
value
==
null
||
value
is
DBNull
)
return
DbType
.
Object
;
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
...
@@ -877,7 +898,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
handler
=
null
;
handler
=
null
;
var
nullUnderlyingType
=
Nullable
.
GetUnderlyingType
(
type
);
var
nullUnderlyingType
=
Nullable
.
GetUnderlyingType
(
type
);
if
(
nullUnderlyingType
!=
null
)
type
=
nullUnderlyingType
;
if
(
nullUnderlyingType
!=
null
)
type
=
nullUnderlyingType
;
if
(
type
.
IsEnum
&&
!
typeMap
.
ContainsKey
(
type
))
if
(
type
.
IsEnum
()
&&
!
typeMap
.
ContainsKey
(
type
))
{
{
type
=
Enum
.
GetUnderlyingType
(
type
);
type
=
Enum
.
GetUnderlyingType
(
type
);
}
}
...
@@ -898,6 +919,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
...
@@ -898,6 +919,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
{
{
return
DbType
.
Object
;
return
DbType
.
Object
;
}
}
#if !DNXCORE50
switch
(
type
.
FullName
)
switch
(
type
.
FullName
)
{
{
case
"Microsoft.SqlServer.Types.SqlGeography"
:
case
"Microsoft.SqlServer.Types.SqlGeography"
:
...
@@ -910,6 +932,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
...
@@ -910,6 +932,7 @@ internal static DbType LookupDbType(Type type, string name, bool demand, out ITy
AddTypeHandler
(
type
,
handler
=
new
UdtTypeHandler
(
"hierarchyid"
));
AddTypeHandler
(
type
,
handler
=
new
UdtTypeHandler
(
"hierarchyid"
));
return
DbType
.
Object
;
return
DbType
.
Object
;
}
}
#endif
if
(
demand
)
if
(
demand
)
throw
new
NotSupportedException
(
string
.
Format
(
"The member {0} of type {1} cannot be used as a parameter value"
,
name
,
type
.
FullName
));
throw
new
NotSupportedException
(
string
.
Format
(
"The member {0} of type {1} cannot be used as a parameter value"
,
name
,
type
.
FullName
));
return
DbType
.
Object
;
return
DbType
.
Object
;
...
@@ -2140,13 +2163,13 @@ private static void PassByPosition(IDbCommand cmd)
...
@@ -2140,13 +2163,13 @@ private static void PassByPosition(IDbCommand cmd)
{
{
if
(
cmd
.
Parameters
.
Count
==
0
)
return
;
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
)
foreach
(
IDbDataParameter
param
in
cmd
.
Parameters
)
{
{
if
(!
string
.
IsNullOrEmpty
(
param
.
ParameterName
))
parameters
[
param
.
ParameterName
]
=
param
;
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
;
bool
firstMatch
=
true
;
cmd
.
CommandText
=
pseudoPositional
.
Replace
(
cmd
.
CommandText
,
match
=>
cmd
.
CommandText
=
pseudoPositional
.
Replace
(
cmd
.
CommandText
,
match
=>
{
{
...
@@ -2193,8 +2216,8 @@ private static void PassByPosition(IDbCommand cmd)
...
@@ -2193,8 +2216,8 @@ private static void PassByPosition(IDbCommand cmd)
}
}
#endif
#endif
Type
underlyingType
=
null
;
Type
underlyingType
=
null
;
if
(!(
typeMap
.
ContainsKey
(
type
)
||
type
.
IsEnum
||
type
.
FullName
==
LinqBinary
||
if
(!(
typeMap
.
ContainsKey
(
type
)
||
type
.
IsEnum
()
||
type
.
FullName
==
LinqBinary
||
(
type
.
IsValueType
&&
(
underlyingType
=
Nullable
.
GetUnderlyingType
(
type
))
!=
null
&&
underlyingType
.
IsEnum
)))
(
type
.
IsValueType
()
&&
(
underlyingType
=
Nullable
.
GetUnderlyingType
(
type
))
!=
null
&&
underlyingType
.
IsEnum
()
)))
{
{
ITypeHandler
handler
;
ITypeHandler
handler
;
if
(
typeHandlers
.
TryGetValue
(
type
,
out
handler
))
if
(
typeHandlers
.
TryGetValue
(
type
,
out
handler
))
...
@@ -2652,7 +2675,10 @@ private static Exception MultiMapException(IDataRecord reader)
...
@@ -2652,7 +2675,10 @@ private static Exception MultiMapException(IDataRecord reader)
/// </summary>
/// </summary>
/// <param name="value"></param>
/// <param name="value"></param>
/// <returns></returns>
/// <returns></returns>
[
Browsable
(
false
),
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
#if !DNXCORE50
[
Browsable
(
false
)]
#endif
[
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
public
static
char
ReadChar
(
object
value
)
public
static
char
ReadChar
(
object
value
)
{
{
...
@@ -2665,7 +2691,10 @@ public static char ReadChar(object value)
...
@@ -2665,7 +2691,10 @@ public static char ReadChar(object value)
/// <summary>
/// <summary>
/// Internal use only
/// Internal use only
/// </summary>
/// </summary>
[
Browsable
(
false
),
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
#if !DNXCORE50
[
Browsable
(
false
)]
#endif
[
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
public
static
char
?
ReadNullableChar
(
object
value
)
public
static
char
?
ReadNullableChar
(
object
value
)
{
{
...
@@ -2679,7 +2708,10 @@ public static char ReadChar(object value)
...
@@ -2679,7 +2708,10 @@ public static char ReadChar(object value)
/// <summary>
/// <summary>
/// Internal use only
/// Internal use only
/// </summary>
/// </summary>
[
Browsable
(
false
),
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
#if !DNXCORE50
[
Browsable
(
false
)]
#endif
[
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
[
Obsolete
(
"This method is for internal usage only"
,
true
)]
[
Obsolete
(
"This method is for internal usage only"
,
true
)]
public
static
IDbDataParameter
FindOrAddParameter
(
IDataParameterCollection
parameters
,
IDbCommand
command
,
string
name
)
public
static
IDbDataParameter
FindOrAddParameter
(
IDataParameterCollection
parameters
,
IDbCommand
command
,
string
name
)
{
{
...
@@ -2700,7 +2732,10 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param
...
@@ -2700,7 +2732,10 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param
/// <summary>
/// <summary>
/// Internal use only
/// Internal use only
/// </summary>
/// </summary>
[
Browsable
(
false
),
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
#if !DNXCORE50
[
Browsable
(
false
)]
#endif
[
EditorBrowsable
(
EditorBrowsableState
.
Never
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
[
Obsolete
(
"This method is for internal usage only"
,
false
)]
public
static
void
PackListParameters
(
IDbCommand
command
,
string
namePrefix
,
object
value
)
public
static
void
PackListParameters
(
IDbCommand
command
,
string
namePrefix
,
object
value
)
{
{
...
@@ -2710,7 +2745,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
...
@@ -2710,7 +2745,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
if
(
FeatureSupport
.
Get
(
command
.
Connection
).
Arrays
)
if
(
FeatureSupport
.
Get
(
command
.
Connection
).
Arrays
)
{
{
var
arrayParm
=
command
.
CreateParameter
();
var
arrayParm
=
command
.
CreateParameter
();
arrayParm
.
Value
=
value
??
DBNull
.
Value
;
arrayParm
.
Value
=
SanitizeParameterValue
(
value
)
;
arrayParm
.
ParameterName
=
namePrefix
;
arrayParm
.
ParameterName
=
namePrefix
;
command
.
Parameters
.
Add
(
arrayParm
);
command
.
Parameters
.
Add
(
arrayParm
);
}
}
...
@@ -2740,7 +2775,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
...
@@ -2740,7 +2775,7 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
}
}
else
else
{
{
listParam
.
Value
=
item
??
DBNull
.
Value
;
listParam
.
Value
=
SanitizeParameterValue
(
item
)
;
command
.
Parameters
.
Add
(
listParam
);
command
.
Parameters
.
Add
(
listParam
);
}
}
}
}
...
@@ -2797,7 +2832,34 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
...
@@ -2797,7 +2832,34 @@ public static void PackListParameters(IDbCommand command, string namePrefix, obj
}
}
}
}
internal
static
object
SanitizeParameterValue
(
object
value
)
{
if
(
value
==
null
)
return
DBNull
.
Value
;
if
(
value
is
Enum
)
{
TypeCode
typeCode
;
if
(
value
is
IConvertible
)
{
typeCode
=
((
IConvertible
)
value
).
GetTypeCode
();
}
else
{
typeCode
=
TypeExtensions
.
GetTypeCode
(
Enum
.
GetUnderlyingType
(
value
.
GetType
()));
}
switch
(
typeCode
)
{
case
TypeCode
.
Byte
:
return
(
byte
)
value
;
case
TypeCode
.
SByte
:
return
(
sbyte
)
value
;
case
TypeCode
.
Int16
:
return
(
short
)
value
;
case
TypeCode
.
Int32
:
return
(
int
)
value
;
case
TypeCode
.
Int64
:
return
(
long
)
value
;
case
TypeCode
.
UInt16
:
return
(
ushort
)
value
;
case
TypeCode
.
UInt32
:
return
(
uint
)
value
;
case
TypeCode
.
UInt64
:
return
(
ulong
)
value
;
}
}
return
value
;
}
private
static
IEnumerable
<
PropertyInfo
>
FilterParameters
(
IEnumerable
<
PropertyInfo
>
parameters
,
string
sql
)
private
static
IEnumerable
<
PropertyInfo
>
FilterParameters
(
IEnumerable
<
PropertyInfo
>
parameters
,
string
sql
)
{
{
return
parameters
.
Where
(
p
=>
Regex
.
IsMatch
(
sql
,
@"[?@:]"
+
p
.
Name
+
"([^a-z0-9_]+|$)"
,
RegexOptions
.
IgnoreCase
|
RegexOptions
.
Multiline
|
RegexOptions
.
CultureInvariant
));
return
parameters
.
Where
(
p
=>
Regex
.
IsMatch
(
sql
,
@"[?@:]"
+
p
.
Name
+
"([^a-z0-9_]+|$)"
,
RegexOptions
.
IgnoreCase
|
RegexOptions
.
Multiline
|
RegexOptions
.
CultureInvariant
));
...
@@ -2854,10 +2916,12 @@ public static string Format(object value)
...
@@ -2854,10 +2916,12 @@ public static string Format(object value)
}
}
else
else
{
{
switch
(
Type
.
GetTypeCode
(
value
.
GetType
()))
switch
(
Type
Extensions
.
GetTypeCode
(
value
.
GetType
()))
{
{
#if !DNXCORE50
case
TypeCode
.
DBNull
:
case
TypeCode
.
DBNull
:
return
"null"
;
return
"null"
;
#endif
case
TypeCode
.
Boolean
:
case
TypeCode
.
Boolean
:
return
((
bool
)
value
)
?
"1"
:
"0"
;
return
((
bool
)
value
)
?
"1"
:
"0"
;
case
TypeCode
.
Byte
:
case
TypeCode
.
Byte
:
...
@@ -2936,7 +3000,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -2936,7 +3000,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
if
(!
literalTokens
.
IsMatch
(
sql
))
return
LiteralToken
.
None
;
if
(!
literalTokens
.
IsMatch
(
sql
))
return
LiteralToken
.
None
;
var
matches
=
literalTokens
.
Matches
(
sql
);
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
);
List
<
LiteralToken
>
list
=
new
List
<
LiteralToken
>(
matches
.
Count
);
foreach
(
Match
match
in
matches
)
foreach
(
Match
match
in
matches
)
{
{
...
@@ -2970,7 +3034,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -2970,7 +3034,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
var
il
=
dm
.
GetILGenerator
();
var
il
=
dm
.
GetILGenerator
();
bool
isStruct
=
type
.
IsValueType
;
bool
isStruct
=
type
.
IsValueType
()
;
bool
haveInt32Arg1
=
false
;
bool
haveInt32Arg1
=
false
;
il
.
Emit
(
OpCodes
.
Ldarg_1
);
// stack is now [untyped-param]
il
.
Emit
(
OpCodes
.
Ldarg_1
);
// stack is now [untyped-param]
if
(
isStruct
)
if
(
isStruct
)
...
@@ -3000,7 +3064,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3000,7 +3064,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
bool
ok
=
true
;
bool
ok
=
true
;
for
(
int
i
=
0
;
i
<
propsArr
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
propsArr
.
Length
;
i
++)
{
{
if
(!
string
.
Equals
(
propsArr
[
i
].
Name
,
ctorParams
[
i
].
Name
,
StringComparison
.
InvariantCulture
IgnoreCase
))
if
(!
string
.
Equals
(
propsArr
[
i
].
Name
,
ctorParams
[
i
].
Name
,
StringComparison
.
Ordinal
IgnoreCase
))
{
{
ok
=
false
;
ok
=
false
;
break
;
break
;
...
@@ -3012,7 +3076,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3012,7 +3076,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
props
=
propsArr
;
props
=
propsArr
;
}
}
else
{
// might still all be accounted for; check the hard way
else
{
// might still all be accounted for; check the hard way
var
positionByName
=
new
Dictionary
<
string
,
int
>(
StringComparer
.
InvariantCulture
IgnoreCase
);
var
positionByName
=
new
Dictionary
<
string
,
int
>(
StringComparer
.
Ordinal
IgnoreCase
);
foreach
(
var
param
in
ctorParams
)
foreach
(
var
param
in
ctorParams
)
{
{
positionByName
[
param
.
Name
]
=
param
.
Position
;
positionByName
[
param
.
Name
]
=
param
.
Position
;
...
@@ -3066,7 +3130,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3066,7 +3130,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il
.
Emit
(
OpCodes
.
Ldstr
,
prop
.
Name
);
// stack is now [parameters] [command] [name]
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
(
OpCodes
.
Ldloc_0
);
// stack is now [parameters] [command] [name] [typed-param]
il
.
Emit
(
callOpCode
,
prop
.
GetGetMethod
());
// stack is [parameters] [command] [name] [typed-value]
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]
il
.
Emit
(
OpCodes
.
Box
,
prop
.
PropertyType
);
// stack is [parameters] [command] [name] [boxed-value]
}
}
...
@@ -3118,7 +3182,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3118,7 +3182,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il
.
Emit
(
OpCodes
.
Ldloc_0
);
// stack is now [parameters] [[parameters]] [parameter] [parameter] [typed-param]
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]
il
.
Emit
(
callOpCode
,
prop
.
GetGetMethod
());
// stack is [parameters] [[parameters]] [parameter] [parameter] [typed-value]
bool
checkForNull
=
true
;
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]
il
.
Emit
(
OpCodes
.
Box
,
prop
.
PropertyType
);
// stack is [parameters] [[parameters]] [parameter] [parameter] [boxed-value]
if
(
Nullable
.
GetUnderlyingType
(
prop
.
PropertyType
)
==
null
)
if
(
Nullable
.
GetUnderlyingType
(
prop
.
PropertyType
)
==
null
)
...
@@ -3228,10 +3292,10 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3228,10 +3292,10 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
for
(
int
i
=
0
;
i
<
propsArr
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
propsArr
.
Length
;
i
++)
{
{
string
thisName
=
propsArr
[
i
].
Name
;
string
thisName
=
propsArr
[
i
].
Name
;
if
(
string
.
Equals
(
thisName
,
huntName
,
StringComparison
.
InvariantCulture
IgnoreCase
))
if
(
string
.
Equals
(
thisName
,
huntName
,
StringComparison
.
Ordinal
IgnoreCase
))
{
{
fallback
=
propsArr
[
i
];
fallback
=
propsArr
[
i
];
if
(
string
.
Equals
(
thisName
,
huntName
,
StringComparison
.
InvariantCulture
))
if
(
string
.
Equals
(
thisName
,
huntName
,
StringComparison
.
Ordinal
))
{
{
exact
=
fallback
;
exact
=
fallback
;
break
;
break
;
...
@@ -3246,7 +3310,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3246,7 +3310,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il
.
Emit
(
OpCodes
.
Ldloc_0
);
// command, sql, typed parameter
il
.
Emit
(
OpCodes
.
Ldloc_0
);
// command, sql, typed parameter
il
.
EmitCall
(
callOpCode
,
prop
.
GetGetMethod
(),
null
);
// command, sql, typed value
il
.
EmitCall
(
callOpCode
,
prop
.
GetGetMethod
(),
null
);
// command, sql, typed value
Type
propType
=
prop
.
PropertyType
;
Type
propType
=
prop
.
PropertyType
;
var
typeCode
=
Type
.
GetTypeCode
(
propType
);
var
typeCode
=
Type
Extensions
.
GetTypeCode
(
propType
);
switch
(
typeCode
)
switch
(
typeCode
)
{
{
case
TypeCode
.
Boolean
:
case
TypeCode
.
Boolean
:
...
@@ -3287,7 +3351,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3287,7 +3351,7 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
il
.
EmitCall
(
OpCodes
.
Call
,
convert
,
null
);
// command, sql, string value
il
.
EmitCall
(
OpCodes
.
Call
,
convert
,
null
);
// command, sql, string value
break
;
break
;
default
:
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
il
.
EmitCall
(
OpCodes
.
Call
,
format
,
null
);
// command, sql, string value
break
;
break
;
...
@@ -3305,13 +3369,13 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
...
@@ -3305,13 +3369,13 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
{
{
typeof
(
bool
),
typeof
(
sbyte
),
typeof
(
byte
),
typeof
(
ushort
),
typeof
(
short
),
typeof
(
bool
),
typeof
(
sbyte
),
typeof
(
byte
),
typeof
(
ushort
),
typeof
(
short
),
typeof
(
uint
),
typeof
(
int
),
typeof
(
ulong
),
typeof
(
long
),
typeof
(
float
),
typeof
(
double
),
typeof
(
decimal
)
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
=>
Type
Extensions
.
GetTypeCode
(
x
),
x
=>
x
.
GetPublicInstanceMethod
(
"ToString"
,
new
[]
{
typeof
(
IFormatProvider
)
}
));
static
MethodInfo
GetToString
(
TypeCode
typeCode
)
static
MethodInfo
GetToString
(
TypeCode
typeCode
)
{
{
MethodInfo
method
;
MethodInfo
method
;
return
toStrings
.
TryGetValue
(
typeCode
,
out
method
)
?
method
:
null
;
return
toStrings
.
TryGetValue
(
typeCode
,
out
method
)
?
method
:
null
;
}
}
static
readonly
MethodInfo
StringReplace
=
typeof
(
string
).
Get
Method
(
"Replace"
,
BindingFlags
.
Instance
|
BindingFlags
.
Public
,
null
,
new
Type
[]
{
typeof
(
string
),
typeof
(
string
)
},
null
),
static
readonly
MethodInfo
StringReplace
=
typeof
(
string
).
Get
PublicInstanceMethod
(
"Replace"
,
new
Type
[]
{
typeof
(
string
),
typeof
(
string
)
}
),
InvariantCulture
=
typeof
(
CultureInfo
).
GetProperty
(
"InvariantCulture"
,
BindingFlags
.
Public
|
BindingFlags
.
Static
).
GetGetMethod
();
InvariantCulture
=
typeof
(
CultureInfo
).
GetProperty
(
"InvariantCulture"
,
BindingFlags
.
Public
|
BindingFlags
.
Static
).
GetGetMethod
();
private
static
int
ExecuteCommand
(
IDbConnection
cnn
,
ref
CommandDefinition
command
,
Action
<
IDbCommand
,
object
>
paramReader
)
private
static
int
ExecuteCommand
(
IDbConnection
cnn
,
ref
CommandDefinition
command
,
Action
<
IDbCommand
,
object
>
paramReader
)
...
@@ -3423,7 +3487,7 @@ private static IDataReader ExecuteReaderImpl(IDbConnection cnn, ref CommandDefin
...
@@ -3423,7 +3487,7 @@ private static IDataReader ExecuteReaderImpl(IDbConnection cnn, ref CommandDefin
}
}
#pragma warning restore 618
#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
{
// assume the value is returned as the correct type (int/byte/etc), but box back to the typed enum
return
r
=>
return
r
=>
{
{
...
@@ -3457,7 +3521,7 @@ private static T Parse<T>(object value)
...
@@ -3457,7 +3521,7 @@ private static T Parse<T>(object value)
if
(
value
is
T
)
return
(
T
)
value
;
if
(
value
is
T
)
return
(
T
)
value
;
var
type
=
typeof
(
T
);
var
type
=
typeof
(
T
);
type
=
Nullable
.
GetUnderlyingType
(
type
)
??
type
;
type
=
Nullable
.
GetUnderlyingType
(
type
)
??
type
;
if
(
type
.
IsEnum
)
if
(
type
.
IsEnum
()
)
{
{
if
(
value
is
float
||
value
is
double
||
value
is
decimal
)
if
(
value
is
float
||
value
is
double
||
value
is
decimal
)
{
{
...
@@ -3486,13 +3550,22 @@ static readonly MethodInfo
...
@@ -3486,13 +3550,22 @@ static readonly MethodInfo
public
static
ITypeMap
GetTypeMap
(
Type
type
)
public
static
ITypeMap
GetTypeMap
(
Type
type
)
{
{
if
(
type
==
null
)
throw
new
ArgumentNullException
(
"type"
);
if
(
type
==
null
)
throw
new
ArgumentNullException
(
"type"
);
#if DNXCORE50
ITypeMap
map
=
null
;
#else
var
map
=
(
ITypeMap
)
_typeMaps
[
type
];
var
map
=
(
ITypeMap
)
_typeMaps
[
type
];
#endif
if
(
map
==
null
)
if
(
map
==
null
)
{
{
lock
(
_typeMaps
)
lock
(
_typeMaps
)
{
// double-checked; store this to avoid reflection next time we see this type
{
// 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
// 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
];
map
=
(
ITypeMap
)
_typeMaps
[
type
];
#endif
if
(
map
==
null
)
if
(
map
==
null
)
{
{
map
=
new
DefaultTypeMap
(
type
);
map
=
new
DefaultTypeMap
(
type
);
...
@@ -3504,7 +3577,11 @@ public static ITypeMap GetTypeMap(Type type)
...
@@ -3504,7 +3577,11 @@ public static ITypeMap GetTypeMap(Type type)
}
}
// use Hashtable to get free lockless reading
// 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
();
private
static
readonly
Hashtable
_typeMaps
=
new
Hashtable
();
#endif
/// <summary>
/// <summary>
/// Set custom mapping for type deserializers
/// Set custom mapping for type deserializers
...
@@ -3577,8 +3654,10 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3577,8 +3654,10 @@ public static void SetTypeMap(Type type, ITypeMap map)
ConstructorInfo
specializedConstructor
=
null
;
ConstructorInfo
specializedConstructor
=
null
;
#if !DNXCORE50
bool
supportInitialize
=
false
;
bool
supportInitialize
=
false
;
if
(
type
.
IsValueType
)
#endif
if
(
type
.
IsValueType
())
{
{
il
.
Emit
(
OpCodes
.
Ldloca_S
,
(
byte
)
1
);
il
.
Emit
(
OpCodes
.
Ldloca_S
,
(
byte
)
1
);
il
.
Emit
(
OpCodes
.
Initobj
,
type
);
il
.
Emit
(
OpCodes
.
Initobj
,
type
);
...
@@ -3599,7 +3678,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3599,7 +3678,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
var
consPs
=
explicitConstr
.
GetParameters
();
var
consPs
=
explicitConstr
.
GetParameters
();
foreach
(
var
p
in
consPs
)
foreach
(
var
p
in
consPs
)
{
{
if
(!
p
.
ParameterType
.
IsValueType
)
if
(!
p
.
ParameterType
.
IsValueType
()
)
{
{
il
.
Emit
(
OpCodes
.
Ldnull
);
il
.
Emit
(
OpCodes
.
Ldnull
);
}
}
...
@@ -3620,12 +3699,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3620,12 +3699,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
il
.
Emit
(
OpCodes
.
Newobj
,
explicitConstr
);
il
.
Emit
(
OpCodes
.
Newobj
,
explicitConstr
);
il
.
Emit
(
OpCodes
.
Stloc_1
);
il
.
Emit
(
OpCodes
.
Stloc_1
);
#if !DNXCORE50
supportInitialize
=
typeof
(
ISupportInitialize
).
IsAssignableFrom
(
type
);
supportInitialize
=
typeof
(
ISupportInitialize
).
IsAssignableFrom
(
type
);
if
(
supportInitialize
)
if
(
supportInitialize
)
{
{
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"BeginInit"
),
null
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"BeginInit"
),
null
);
}
}
#endif
}
}
else
else
{
{
...
@@ -3640,12 +3721,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3640,12 +3721,14 @@ public static void SetTypeMap(Type type, ITypeMap map)
{
{
il
.
Emit
(
OpCodes
.
Newobj
,
ctor
);
il
.
Emit
(
OpCodes
.
Newobj
,
ctor
);
il
.
Emit
(
OpCodes
.
Stloc_1
);
il
.
Emit
(
OpCodes
.
Stloc_1
);
#if !DNXCORE50
supportInitialize
=
typeof
(
ISupportInitialize
).
IsAssignableFrom
(
type
);
supportInitialize
=
typeof
(
ISupportInitialize
).
IsAssignableFrom
(
type
);
if
(
supportInitialize
)
if
(
supportInitialize
)
{
{
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"BeginInit"
),
null
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"BeginInit"
),
null
);
}
}
#endif
}
}
else
else
{
{
...
@@ -3655,7 +3738,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3655,7 +3738,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
}
}
il
.
BeginExceptionBlock
();
il
.
BeginExceptionBlock
();
if
(
type
.
IsValueType
)
if
(
type
.
IsValueType
()
)
{
{
il
.
Emit
(
OpCodes
.
Ldloca_S
,
(
byte
)
1
);
// [target]
il
.
Emit
(
OpCodes
.
Ldloca_S
,
(
byte
)
1
);
// [target]
}
}
...
@@ -3706,9 +3789,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3706,9 +3789,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
// unbox nullable enums as the primitive, i.e. byte etc
// unbox nullable enums as the primitive, i.e. byte etc
var
nullUnderlyingType
=
Nullable
.
GetUnderlyingType
(
memberType
);
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
);
Type
numericType
=
Enum
.
GetUnderlyingType
(
unboxType
);
if
(
colType
==
typeof
(
string
))
if
(
colType
==
typeof
(
string
))
...
@@ -3743,9 +3826,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3743,9 +3826,9 @@ public static void SetTypeMap(Type type, ITypeMap map)
}
}
else
else
{
{
TypeCode
dataTypeCode
=
Type
.
GetTypeCode
(
colType
),
unboxTypeCode
=
Type
.
GetTypeCode
(
unboxType
);
TypeCode
dataTypeCode
=
Type
Extensions
.
GetTypeCode
(
colType
),
unboxTypeCode
=
TypeExtensions
.
GetTypeCode
(
unboxType
);
bool
hasTypeHandler
;
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
==
Type
Extensions
.
GetTypeCode
(
nullUnderlyingType
))
{
{
if
(
hasTypeHandler
)
if
(
hasTypeHandler
)
{
{
...
@@ -3776,7 +3859,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3776,7 +3859,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
// Store the value in the property/field
// Store the value in the property/field
if
(
item
.
Property
!=
null
)
if
(
item
.
Property
!=
null
)
{
{
if
(
type
.
IsValueType
)
if
(
type
.
IsValueType
()
)
{
{
il
.
Emit
(
OpCodes
.
Call
,
DefaultTypeMap
.
GetPropertySetter
(
item
.
Property
,
type
));
// stack is now [target]
il
.
Emit
(
OpCodes
.
Call
,
DefaultTypeMap
.
GetPropertySetter
(
item
.
Property
,
type
));
// stack is now [target]
}
}
...
@@ -3797,7 +3880,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3797,7 +3880,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
if
(
specializedConstructor
!=
null
)
if
(
specializedConstructor
!=
null
)
{
{
il
.
Emit
(
OpCodes
.
Pop
);
il
.
Emit
(
OpCodes
.
Pop
);
if
(
item
.
MemberType
.
IsValueType
)
if
(
item
.
MemberType
.
IsValueType
()
)
{
{
int
localIndex
=
il
.
DeclareLocal
(
item
.
MemberType
).
LocalIndex
;
int
localIndex
=
il
.
DeclareLocal
(
item
.
MemberType
).
LocalIndex
;
LoadLocalAddress
(
il
,
localIndex
);
LoadLocalAddress
(
il
,
localIndex
);
...
@@ -3828,7 +3911,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3828,7 +3911,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
first
=
false
;
first
=
false
;
index
+=
1
;
index
+=
1
;
}
}
if
(
type
.
IsValueType
)
if
(
type
.
IsValueType
()
)
{
{
il
.
Emit
(
OpCodes
.
Pop
);
il
.
Emit
(
OpCodes
.
Pop
);
}
}
...
@@ -3839,11 +3922,13 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3839,11 +3922,13 @@ public static void SetTypeMap(Type type, ITypeMap map)
il
.
Emit
(
OpCodes
.
Newobj
,
specializedConstructor
);
il
.
Emit
(
OpCodes
.
Newobj
,
specializedConstructor
);
}
}
il
.
Emit
(
OpCodes
.
Stloc_1
);
// stack is empty
il
.
Emit
(
OpCodes
.
Stloc_1
);
// stack is empty
#if !DNXCORE50
if
(
supportInitialize
)
if
(
supportInitialize
)
{
{
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
Emit
(
OpCodes
.
Ldloc_1
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"EndInit"
),
null
);
il
.
EmitCall
(
OpCodes
.
Callvirt
,
typeof
(
ISupportInitialize
).
GetMethod
(
"EndInit"
),
null
);
}
}
#endif
}
}
il
.
MarkLabel
(
allDone
);
il
.
MarkLabel
(
allDone
);
il
.
BeginCatchBlock
(
typeof
(
Exception
));
// stack is Exception
il
.
BeginCatchBlock
(
typeof
(
Exception
));
// stack is Exception
...
@@ -3854,7 +3939,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
...
@@ -3854,7 +3939,7 @@ public static void SetTypeMap(Type type, ITypeMap map)
il
.
EndExceptionBlock
();
il
.
EndExceptionBlock
();
il
.
Emit
(
OpCodes
.
Ldloc_1
);
// stack is [rval]
il
.
Emit
(
OpCodes
.
Ldloc_1
);
// stack is [rval]
if
(
type
.
IsValueType
)
if
(
type
.
IsValueType
()
)
{
{
il
.
Emit
(
OpCodes
.
Box
,
type
);
il
.
Emit
(
OpCodes
.
Box
,
type
);
}
}
...
@@ -3880,7 +3965,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
...
@@ -3880,7 +3965,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
{
{
bool
handled
=
false
;
bool
handled
=
false
;
OpCode
opCode
=
default
(
OpCode
);
OpCode
opCode
=
default
(
OpCode
);
switch
(
Type
.
GetTypeCode
(
from
))
switch
(
Type
Extensions
.
GetTypeCode
(
from
))
{
{
case
TypeCode
.
Boolean
:
case
TypeCode
.
Boolean
:
case
TypeCode
.
Byte
:
case
TypeCode
.
Byte
:
...
@@ -3894,7 +3979,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
...
@@ -3894,7 +3979,7 @@ private static void FlexibleConvertBoxedFromHeadOfStack(ILGenerator il, Type fro
case
TypeCode
.
Single
:
case
TypeCode
.
Single
:
case
TypeCode
.
Double
:
case
TypeCode
.
Double
:
handled
=
true
;
handled
=
true
;
switch
(
Type
.
GetTypeCode
(
via
??
to
))
switch
(
Type
Extensions
.
GetTypeCode
(
via
??
to
))
{
{
case
TypeCode
.
Byte
:
case
TypeCode
.
Byte
:
opCode
=
OpCodes
.
Conv_Ovf_I1_Un
;
break
;
opCode
=
OpCodes
.
Conv_Ovf_I1_Un
;
break
;
...
@@ -4043,7 +4128,7 @@ public static void ThrowDataException(Exception ex, int index, IDataReader reade
...
@@ -4043,7 +4128,7 @@ public static void ThrowDataException(Exception ex, int index, IDataReader reade
}
}
else
else
{
{
formattedValue
=
Convert
.
ToString
(
value
)
+
" - "
+
Type
.
GetTypeCode
(
value
.
GetType
());
formattedValue
=
Convert
.
ToString
(
value
)
+
" - "
+
Type
Extensions
.
GetTypeCode
(
value
.
GetType
());
}
}
}
}
catch
(
Exception
valEx
)
catch
(
Exception
valEx
)
...
@@ -4379,6 +4464,8 @@ public void Dispose()
...
@@ -4379,6 +4464,8 @@ public void Dispose()
}
}
}
}
#if !DNXCORE50
/// <summary>
/// <summary>
/// Used to pass a DataTable as a TableValuedParameter
/// Used to pass a DataTable as a TableValuedParameter
/// </summary>
/// </summary>
...
@@ -4412,7 +4499,7 @@ public static string GetTypeName(this DataTable table)
...
@@ -4412,7 +4499,7 @@ public static string GetTypeName(this DataTable table)
{
{
return
table
==
null
?
null
:
table
.
ExtendedProperties
[
DataTableTypeNameKey
]
as
string
;
return
table
==
null
?
null
:
table
.
ExtendedProperties
[
DataTableTypeNameKey
]
as
string
;
}
}
#endif
// one per thread
// one per thread
[
ThreadStatic
]
[
ThreadStatic
]
...
@@ -4698,7 +4785,7 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
...
@@ -4698,7 +4785,7 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
p
.
Direction
=
param
.
ParameterDirection
;
p
.
Direction
=
param
.
ParameterDirection
;
if
(
handler
==
null
)
if
(
handler
==
null
)
{
{
p
.
Value
=
val
??
DBNull
.
Value
;
p
.
Value
=
SqlMapper
.
SanitizeParameterValue
(
val
)
;
if
(
dbType
!=
null
&&
p
.
DbType
!=
dbType
)
if
(
dbType
!=
null
&&
p
.
DbType
!=
dbType
)
{
{
p
.
DbType
=
dbType
.
Value
;
p
.
DbType
=
dbType
.
Value
;
...
@@ -4711,10 +4798,7 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
...
@@ -4711,10 +4798,7 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
p
.
Size
=
DbString
.
DefaultLength
;
p
.
Size
=
DbString
.
DefaultLength
;
}
}
}
}
if
(
param
.
Size
!=
null
)
if
(
param
.
Size
!=
null
)
p
.
Size
=
param
.
Size
.
Value
;
{
p
.
Size
=
param
.
Size
.
Value
;
}
if
(
param
.
Precision
!=
null
)
p
.
Precision
=
param
.
Precision
.
Value
;
if
(
param
.
Precision
!=
null
)
p
.
Precision
=
param
.
Precision
.
Value
;
if
(
param
.
Scale
!=
null
)
p
.
Scale
=
param
.
Scale
.
Value
;
if
(
param
.
Scale
!=
null
)
p
.
Scale
=
param
.
Scale
.
Value
;
}
}
...
@@ -4722,6 +4806,8 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
...
@@ -4722,6 +4806,8 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
{
{
if
(
dbType
!=
null
)
p
.
DbType
=
dbType
.
Value
;
if
(
dbType
!=
null
)
p
.
DbType
=
dbType
.
Value
;
if
(
param
.
Size
!=
null
)
p
.
Size
=
param
.
Size
.
Value
;
if
(
param
.
Size
!=
null
)
p
.
Size
=
param
.
Size
.
Value
;
if
(
param
.
Precision
!=
null
)
p
.
Precision
=
param
.
Precision
.
Value
;
if
(
param
.
Scale
!=
null
)
p
.
Scale
=
param
.
Scale
.
Value
;
handler
.
SetValue
(
p
,
val
??
DBNull
.
Value
);
handler
.
SetValue
(
p
,
val
??
DBNull
.
Value
);
}
}
...
@@ -4793,8 +4879,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4793,8 +4879,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
var
lastMemberAccess
=
expression
.
Body
as
MemberExpression
;
var
lastMemberAccess
=
expression
.
Body
as
MemberExpression
;
if
(
lastMemberAccess
==
null
||
if
(
lastMemberAccess
==
null
||
(
lastMemberAccess
.
Member
.
MemberType
!=
MemberTypes
.
Property
&&
(
!(
lastMemberAccess
.
Member
is
PropertyInfo
)
&&
lastMemberAccess
.
Member
.
MemberType
!=
MemberTypes
.
Field
))
!(
lastMemberAccess
.
Member
is
FieldInfo
)
))
{
{
if
(
expression
.
Body
.
NodeType
==
ExpressionType
.
Convert
&&
if
(
expression
.
Body
.
NodeType
==
ExpressionType
.
Convert
&&
expression
.
Body
.
Type
==
typeof
(
object
)
&&
expression
.
Body
.
Type
==
typeof
(
object
)
&&
...
@@ -4829,8 +4915,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4829,8 +4915,8 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
break
;
break
;
}
}
else
if
(
diving
==
null
||
else
if
(
diving
==
null
||
(
diving
.
Member
.
MemberType
!=
MemberTypes
.
Property
&&
(
!(
diving
.
Member
is
PropertyInfo
)
&&
diving
.
Member
.
MemberType
!=
MemberTypes
.
Field
))
!(
diving
.
Member
is
FieldInfo
)
))
{
{
@throw
();
@throw
();
}
}
...
@@ -4843,8 +4929,15 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4843,8 +4929,15 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
var
lookup
=
string
.
Join
(
"|"
,
names
.
ToArray
());
var
lookup
=
string
.
Join
(
"|"
,
names
.
ToArray
());
var
cache
=
CachedOutputSetters
<
T
>.
Cache
;
var
cache
=
CachedOutputSetters
<
T
>.
Cache
;
var
setter
=
(
Action
<
object
,
DynamicParameters
>)
cache
[
lookup
];
Action
<
object
,
DynamicParameters
>
setter
;
#if DNXCORE50
lock
(
cache
)
{
if
(!
cache
.
TryGetValue
(
lookup
,
out
setter
))
setter
=
null
;
}
#else
setter
=
(
Action
<
object
,
DynamicParameters
>)
cache
[
lookup
];
#endif
if
(
setter
!=
null
)
goto
MAKECALLBACK
;
if
(
setter
!=
null
)
goto
MAKECALLBACK
;
// Come on let's build a method, let's build it, let's build it now!
// Come on let's build a method, let's build it, let's build it now!
...
@@ -4860,7 +4953,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4860,7 +4953,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
{
{
var
member
=
chain
[
0
].
Member
;
var
member
=
chain
[
0
].
Member
;
if
(
member
.
MemberType
==
MemberTypes
.
Property
)
if
(
member
is
PropertyInfo
)
{
{
var
get
=
((
PropertyInfo
)
member
).
GetGetMethod
(
true
);
var
get
=
((
PropertyInfo
)
member
).
GetGetMethod
(
true
);
il
.
Emit
(
OpCodes
.
Callvirt
,
get
);
// [Member{i}]
il
.
Emit
(
OpCodes
.
Callvirt
,
get
);
// [Member{i}]
...
@@ -4879,7 +4972,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4879,7 +4972,7 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
// GET READY
// GET READY
var
lastMember
=
lastMemberAccess
.
Member
;
var
lastMember
=
lastMemberAccess
.
Member
;
if
(
lastMember
.
MemberType
==
MemberTypes
.
Property
)
if
(
lastMember
is
PropertyInfo
)
{
{
var
set
=
((
PropertyInfo
)
lastMember
).
GetSetMethod
(
true
);
var
set
=
((
PropertyInfo
)
lastMember
).
GetSetMethod
(
true
);
il
.
Emit
(
OpCodes
.
Callvirt
,
set
);
// SET
il
.
Emit
(
OpCodes
.
Callvirt
,
set
);
// SET
...
@@ -4939,7 +5032,11 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
...
@@ -4939,7 +5032,11 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
internal
static
class
CachedOutputSetters
<
T
>
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
();
public
static
readonly
Hashtable
Cache
=
new
Hashtable
();
#endif
}
}
void
SqlMapper
.
IParameterCallbacks
.
OnCompleted
()
void
SqlMapper
.
IParameterCallbacks
.
OnCompleted
()
...
@@ -4950,7 +5047,7 @@ void SqlMapper.IParameterCallbacks.OnCompleted()
...
@@ -4950,7 +5047,7 @@ void SqlMapper.IParameterCallbacks.OnCompleted()
}
}
}
}
}
}
#if !DNXCORE50
sealed
class
DataTableHandler
:
Dapper
.
SqlMapper
.
ITypeHandler
sealed
class
DataTableHandler
:
Dapper
.
SqlMapper
.
ITypeHandler
{
{
public
object
Parse
(
Type
destinationType
,
object
value
)
public
object
Parse
(
Type
destinationType
,
object
value
)
...
@@ -5003,7 +5100,7 @@ void SqlMapper.ICustomQueryParameter.AddParameter(IDbCommand command, string nam
...
@@ -5003,7 +5100,7 @@ void SqlMapper.ICustomQueryParameter.AddParameter(IDbCommand command, string nam
}
}
internal
static
void
Set
(
IDbDataParameter
parameter
,
DataTable
table
,
string
typeName
)
internal
static
void
Set
(
IDbDataParameter
parameter
,
DataTable
table
,
string
typeName
)
{
{
parameter
.
Value
=
(
object
)
table
??
DBNull
.
Value
;
parameter
.
Value
=
SqlMapper
.
SanitizeParameterValue
(
table
)
;
if
(
string
.
IsNullOrEmpty
(
typeName
)
&&
table
!=
null
)
if
(
string
.
IsNullOrEmpty
(
typeName
)
&&
table
!=
null
)
{
{
typeName
=
SqlMapper
.
GetTypeName
(
table
);
typeName
=
SqlMapper
.
GetTypeName
(
table
);
...
@@ -5019,6 +5116,7 @@ internal static void Set(IDbDataParameter parameter, DataTable table, string typ
...
@@ -5019,6 +5116,7 @@ internal static void Set(IDbDataParameter parameter, DataTable table, string typ
}
}
}
}
}
}
#endif
/// <summary>
/// <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
/// 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>
/// </summary>
...
@@ -5064,7 +5162,7 @@ public void AddParameter(IDbCommand command, string name)
...
@@ -5064,7 +5162,7 @@ public void AddParameter(IDbCommand command, string name)
}
}
var
param
=
command
.
CreateParameter
();
var
param
=
command
.
CreateParameter
();
param
.
ParameterName
=
name
;
param
.
ParameterName
=
name
;
param
.
Value
=
(
object
)
Value
??
DBNull
.
Value
;
param
.
Value
=
SqlMapper
.
SanitizeParameterValue
(
Value
)
;
if
(
Length
==
-
1
&&
Value
!=
null
&&
Value
.
Length
<=
DefaultLength
)
if
(
Length
==
-
1
&&
Value
!=
null
&&
Value
.
Length
<=
DefaultLength
)
{
{
param
.
Size
=
DefaultLength
;
param
.
Size
=
DefaultLength
;
...
@@ -5093,7 +5191,7 @@ private static readonly FeatureSupport
...
@@ -5093,7 +5191,7 @@ private static readonly FeatureSupport
public
static
FeatureSupport
Get
(
IDbConnection
connection
)
public
static
FeatureSupport
Get
(
IDbConnection
connection
)
{
{
string
name
=
connection
==
null
?
null
:
connection
.
GetType
().
Name
;
string
name
=
connection
==
null
?
null
:
connection
.
GetType
().
Name
;
if
(
string
.
Equals
(
name
,
"npgsqlconnection"
,
StringComparison
.
InvariantCulture
IgnoreCase
))
return
postgres
;
if
(
string
.
Equals
(
name
,
"npgsqlconnection"
,
StringComparison
.
Ordinal
IgnoreCase
))
return
postgres
;
return
@default
;
return
@default
;
}
}
private
FeatureSupport
(
bool
arrays
)
private
FeatureSupport
(
bool
arrays
)
...
@@ -5242,18 +5340,35 @@ public DefaultTypeMap(Type type)
...
@@ -5242,18 +5340,35 @@ public DefaultTypeMap(Type type)
_properties
=
GetSettableProps
(
type
);
_properties
=
GetSettableProps
(
type
);
_type
=
type
;
_type
=
type
;
}
}
#if DNXCORE50
static
bool
IsParameterMatch
(
ParameterInfo
[]
x
,
ParameterInfo
[]
y
)
{
if
(
ReferenceEquals
(
x
,
y
))
return
true
;
if
(
x
==
null
||
y
==
null
)
return
false
;
if
(
x
.
Length
!=
y
.
Length
)
return
false
;
for
(
int
i
=
0
;
i
<
x
.
Length
;
i
++)
if
(
x
[
i
].
ParameterType
!=
y
[
i
].
ParameterType
)
return
false
;
return
true
;
}
#endif
internal
static
MethodInfo
GetPropertySetter
(
PropertyInfo
propertyInfo
,
Type
type
)
internal
static
MethodInfo
GetPropertySetter
(
PropertyInfo
propertyInfo
,
Type
type
)
{
{
return
propertyInfo
.
DeclaringType
==
type
?
if
(
propertyInfo
.
DeclaringType
==
type
)
return
propertyInfo
.
GetSetMethod
(
true
);
propertyInfo
.
GetSetMethod
(
true
)
:
#if DNXCORE50
propertyInfo
.
DeclaringType
.
GetProperty
(
return
propertyInfo
.
DeclaringType
.
GetProperties
(
BindingFlags
.
Public
|
BindingFlags
.
NonPublic
|
BindingFlags
.
Instance
)
.
Single
(
x
=>
x
.
Name
==
propertyInfo
.
Name
&&
x
.
PropertyType
==
propertyInfo
.
PropertyType
&&
IsParameterMatch
(
x
.
GetIndexParameters
(),
propertyInfo
.
GetIndexParameters
())
).
GetSetMethod
(
true
);
#else
return
propertyInfo
.
DeclaringType
.
GetProperty
(
propertyInfo
.
Name
,
propertyInfo
.
Name
,
BindingFlags
.
Public
|
BindingFlags
.
NonPublic
|
BindingFlags
.
Instance
,
BindingFlags
.
Public
|
BindingFlags
.
NonPublic
|
BindingFlags
.
Instance
,
Type
.
DefaultBinder
,
Type
.
DefaultBinder
,
propertyInfo
.
PropertyType
,
propertyInfo
.
PropertyType
,
propertyInfo
.
GetIndexParameters
().
Select
(
p
=>
p
.
ParameterType
).
ToArray
(),
propertyInfo
.
GetIndexParameters
().
Select
(
p
=>
p
.
ParameterType
).
ToArray
(),
null
).
GetSetMethod
(
true
);
null
).
GetSetMethod
(
true
);
#endif
}
}
internal
static
List
<
PropertyInfo
>
GetSettableProps
(
Type
t
)
internal
static
List
<
PropertyInfo
>
GetSettableProps
(
Type
t
)
...
@@ -5296,11 +5411,13 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
...
@@ -5296,11 +5411,13 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
continue
;
continue
;
var
unboxedType
=
Nullable
.
GetUnderlyingType
(
ctorParameters
[
i
].
ParameterType
)
??
ctorParameters
[
i
].
ParameterType
;
var
unboxedType
=
Nullable
.
GetUnderlyingType
(
ctorParameters
[
i
].
ParameterType
)
??
ctorParameters
[
i
].
ParameterType
;
if
(
unboxedType
!=
types
[
i
]
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
))
&&
!(
unboxedType
==
typeof
(
char
)
&&
types
[
i
]
==
typeof
(
string
))
&&
!(
unboxedType
.
IsEnum
&&
types
[
i
]
==
typeof
(
string
)))
&&
!(
unboxedType
.
IsEnum
()
&&
types
[
i
]
==
typeof
(
string
)))
{
break
;
break
;
}
}
}
if
(
i
==
ctorParameters
.
Length
)
if
(
i
==
ctorParameters
.
Length
)
return
ctor
;
return
ctor
;
...
@@ -5315,7 +5432,11 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
...
@@ -5315,7 +5432,11 @@ public ConstructorInfo FindConstructor(string[] names, Type[] types)
public
ConstructorInfo
FindExplicitConstructor
()
public
ConstructorInfo
FindExplicitConstructor
()
{
{
var
constructors
=
_type
.
GetConstructors
(
BindingFlags
.
Instance
|
BindingFlags
.
Public
|
BindingFlags
.
NonPublic
);
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
();
var
withAttr
=
constructors
.
Where
(
c
=>
c
.
GetCustomAttributes
(
typeof
(
ExplicitConstructorAttribute
),
true
).
Length
>
0
).
ToList
();
#endif
if
(
withAttr
.
Count
==
1
)
if
(
withAttr
.
Count
==
1
)
{
{
...
@@ -5447,6 +5568,211 @@ public SqlMapper.IMemberMap GetMember(string columnName)
...
@@ -5447,6 +5568,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
internal
class
WrappedReader
:
IDataReader
,
IWrappedDataReader
{
{
private
IDataReader
reader
;
private
IDataReader
reader
;
...
@@ -5645,7 +5971,25 @@ bool IDataRecord.IsDBNull(int i)
...
@@ -5645,7 +5971,25 @@ bool IDataRecord.IsDBNull(int i)
get
{
return
Reader
[
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>
/// <summary>
/// Describes a reader that controls the lifetime of both a command and a reader,
/// Describes a reader that controls the lifetime of both a command and a reader,
/// exposing the downstream command/reader as properties.
/// exposing the downstream command/reader as properties.
...
@@ -5661,6 +6005,7 @@ public interface IWrappedDataReader : IDataReader
...
@@ -5661,6 +6005,7 @@ public interface IWrappedDataReader : IDataReader
/// </summary>
/// </summary>
IDbCommand
Command
{
get
;
}
IDbCommand
Command
{
get
;
}
}
}
#endif
/// <summary>
/// <summary>
/// Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
/// Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
...
@@ -5713,4 +6058,73 @@ public partial class FeatureSupport
...
@@ -5713,4 +6058,73 @@ public partial class FeatureSupport
#endif
#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
}
}
}
}
Dapper.DNX.Tests/Program.cs
deleted
100644 → 0
View file @
34371620
using
System
;
using
System.Linq
;
using
System.Data.SqlClient
;
using
System.Threading.Tasks
;
namespace
Dapper.DNX.Tests
{
public
class
Program
{
public
void
Main
()
{
Console
.
WriteLine
(
"Version: {0}"
,
Environment
.
Version
);
const
string
connectionString
=
"Data Source=.;Initial Catalog=tempdb;Integrated Security=True"
;
using
(
var
conn
=
new
SqlConnection
(
connectionString
))
{
conn
.
Open
();
var
row
=
conn
.
Query
<
Foo
>(
"select @a as X"
,
new
{
a
=
123
}).
Single
();
Console
.
WriteLine
(
row
.
X
);
var
methods
=
typeof
(
Dapper
.
SqlMapper
).
GetMethods
().
Where
(
x
=>
x
.
Name
==
"QueryAsync"
).
ToList
();
row
=
conn
.
QueryAsync
<
Foo
>(
"select @a as X"
,
new
{
a
=
123
}).
Result
.
Single
();
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
;
}
}
}
}
Dapper.DNX.Tests/project.json
View file @
f32d318f
...
@@ -6,32 +6,48 @@
...
@@ -6,32 +6,48 @@
"commands"
:
{
"commands"
:
{
"Dapper.DNX.Tests"
:
"Dapper.DNX.Tests"
"Dapper.DNX.Tests"
:
"Dapper.DNX.Tests"
},
},
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
]},
"compile"
:
[
"../Tests/Tests.cs"
,
"../Tests/Program.cs"
,
"../Tests/Assert.cs"
],
"compilationOptions"
:
{
"define"
:
[
"NOEXTERNALS"
]
},
"frameworks"
:
{
"frameworks"
:
{
"net45"
:
{
"net45"
:
{
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"dependencies"
:
{
"dependencies"
:
{
"System.Threading.Thread"
:
"4.0.0-beta-22816"
},
},
"frameworkAssemblies"
:
{
"frameworkAssemblies"
:
{
"System.Data"
:
"4.0.0.0"
"System.Data"
:
"4.0.0.0"
,
"System.Xml"
:
"4.0.0.0"
}
},
"net40"
:
{
"dependencies"
:
{
},
"frameworkAssemblies"
:
{
"System.Data"
:
"4.0.0.0"
,
"System.Xml"
:
"4.0.0.0"
}
}
},
},
//
"net40"
:
{
//
"dependencies"
:
{
//
},
//
"frameworkAssemblies"
:
{
//
"System.Data"
:
"4.0.0.0"
//
}
//
},
"dnx451"
:
{
"dnx451"
:
{
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"frameworkAssemblies"
:
{
"frameworkAssemblies"
:
{
"System.Data"
:
"4.0.0.0"
"System.Data"
:
"4.0.0.0"
,
"System.Xml"
:
"4.0.0.0"
}
}
},
"dnxcore50"
:
{
"compilationOptions"
:
{
"define"
:
[
],
"warningsAsErrors"
:
true
},
"dependencies"
:
{
"System.Console"
:
"4.0.0-beta-*"
,
"System.Reflection"
:
"4.0.10-beta-*"
,
"System.Linq"
:
"4.0.0-beta-*"
,
"System.Data.Common"
:
"4.0.0-beta-*"
,
"System.Data.SqlClient"
:
"4.0.0-beta-*"
,
"System.Threading"
:
"4.0.10-beta-*"
,
"System.Threading.Thread"
:
"4.0.0-beta-*"
,
"System.Reflection.TypeExtensions"
:
"4.0.0-beta-*"
//
"System.Xml"
:
"4.0.10-beta-*"
}
}
}
//
"dnxcore50"
:
{
//
"dependencies"
:
{
//
"System.Console"
:
"4.0.0-beta-22716"
//
}
//
}
}
}
}
}
Dapper.DNX.Tests/project.lock.json
View file @
f32d318f
{
{
"locked"
:
false
,
"locked"
:
false
,
"version"
:
-9997
,
"version"
:
-9998
,
"targets"
:
{
"projectFileDependencyGroups"
:
{
""
:
[
"Dapper >= 1.41-*"
],
".NETFramework,Version=v4.5"
:
[
"System.Threading.Thread >= 4.0.0-beta-22816"
,
"framework/System.Data >= 4.0.0.0"
,
"framework/System.Xml >= 4.0.0.0"
],
".NETFramework,Version=v4.0"
:
[
"framework/System.Data >= 4.0.0.0"
,
"framework/System.Xml >= 4.0.0.0"
],
"DNX,Version=v4.5.1"
:
[
"framework/System.Data >= 4.0.0.0"
,
"framework/System.Xml >= 4.0.0.0"
],
"DNXCore,Version=v5.0"
:
[
"System.Console >= 4.0.0-beta-*"
,
"System.Reflection >= 4.0.10-beta-*"
,
"System.Linq >= 4.0.0-beta-*"
,
"System.Data.Common >= 4.0.0-beta-*"
,
"System.Data.SqlClient >= 4.0.0-beta-*"
,
"System.Threading >= 4.0.10-beta-*"
,
"System.Threading.Thread >= 4.0.0-beta-*"
,
"System.Reflection.TypeExtensions >= 4.0.0-beta-*"
]
},
"libraries"
:
{
"Microsoft.CSharp/4.0.0-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"h+75iL9JfUbT0P8xOm9u0XSvk5+8GUD92VVwjbvJHqIcM23DVv2AjYVhVjTm6y923lNLn+qh/h4ViinL9RME2Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/Microsoft.CSharp.dll"
],
"compileAssemblies"
:
[
"lib/contract/Microsoft.CSharp.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"pFwiLMtcsvAx8ZFsSIDVSuPAXXW2z1gkmE/YqiMELlxPVHKyJGrUZoJCIBfVg1HERxMnd1dyj7ffqj5Nx3mzGQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Collections.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"mI2+5S3DG07KCur+L4sHleKLzFQEnXo8h3t4gS0awNFzyar8nVKNb95OkiECI68PLy/FM3HfVAuqb12qPw3CXg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Collections.Concurrent.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"Uq1C1DP7MYuE0qqIaI15k/k3r2IKX6A/suIboAkOCLYoiG4jhFfc0ECJVsiXWJEWf7o5xRA0cz+hi+awB5HugA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Console.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Console.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Console.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Console.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Console.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Console.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"7cRRCmUPaUbscio/n1MUgnY1IetH7fH19iuLrfahncpWkEkE6cZSMprkWYFp5CsWrky0OXAnbiW8ANsSGhfbFQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Data.Common.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"HyCUhHjJ5iqsO9GtIqoulzPaJL7w9UeYMaazDhMbUQP1Yz2zalNQaFIV3ssFFEPmCVZwjeV+1zagDfoM0KahZQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.SqlClient.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.SqlClient.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.SqlClient.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.SqlClient.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Data.SqlClient.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Data.SqlClient.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Dynamic.Runtime.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"Bedo0Nd7solBPW1k52EmlA+RKm+yxT2Os8fiu27DK2fyBa68pdFNM9ckjZ1X2DW0E9q49IxRMaWpflTBerMb8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Globalization.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Globalization.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Globalization.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.IO.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.IO.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.IO.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"QlwRD8FTiYAZ7BxEjB5u9vjKaAHZ6KvuZYm+4tjYduTIWpFI3o34UjowJXCaPlLwc8USRshAXLgnsQ3iaOjv8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Linq.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Linq.Expressions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.ObjectModel.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.ILGeneration.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.Lightweight.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Primitives.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.TypeExtensions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
".NETFramework,Version=v4.5"
:
{
"Dapper/1.41-alpha"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.ComponentModel.Composition"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[
"frameworkAssemblies"
:
[
"System.Data"
,
"mscorlib"
,
"mscorlib"
,
"System"
,
"System"
,
"System.Core"
,
"System.ComponentModel.Composition"
,
"Microsoft.CSharp"
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Runtime.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"b8ymkNB0apTc/FCmyeB/Js1CMg8EBaOlM2biIKA94Dk0sT/yyGd8SyCeuZXiCGCIk6HpSiIsIdX53rXgTWxH0w=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Runtime.Extensions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Runtime.Extensions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.Encoding.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Text.Encoding.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Text.Encoding.CodePages.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
],
"compile"
:
[
"runtimeAssemblies"
:
[
"lib/net45/Dapper.dll"
"lib/net45/System.Text.RegularExpressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.RegularExpressions.dll"
],
],
"runtime
"
:
[
"compileAssemblies
"
:
[
"lib/net45/Dapper
.dll"
"lib/contract/System.Text.RegularExpressions
.dll"
]
]
}
}
},
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"GO4X3FuGlw4DJH+UbbKDXKnyyWiwlPJIX+Ys0UCzSdAPneBA42dPb2+kRakWy+wo6n6Gcv7ckkfa3j8MSSxbhg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"DNX,Version=v4.5.1"
:
{
"Dapper/1.41-alpha"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"frameworkAssemblies"
:
[
"System.Data"
,
"mscorlib"
,
"mscorlib"
,
"System"
,
"System"
,
"System.Core"
,
"System.Core"
"Microsoft.CSharp"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.dll"
],
],
"compile"
:
[
"compileAssemblies"
:
[
"lib/dnx451/Dapper.dll"
"lib/net45/System.Threading.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Threading.dll"
],
],
"runtime
"
:
[
"compileAssemblies
"
:
[
"lib/dnx451/Dapper
.dll"
"lib/contract/System.Threading
.dll"
]
]
}
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Threading.Tasks.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Threading.Tasks.dll"
]
}
}
},
},
"libraries"
:
{
"Dapper/1.41-alpha"
:
{
"sha512"
:
"dJPrw+E8nGHRydGRUddbjGUxQBR9w4d8ISLD8QM24FsRihEJjjlww+AFb77mK78qGFwkHAnpY2k8oZfpLR61gg=="
,
"files"
:
[
"files"
:
[
"Dapper.1.41-alpha.nupkg"
,
"License.rtf"
,
"Dapper.1.41-alpha.nupkg.sha512"
,
"System.Threading.Tasks.4.0.10-beta-22816.nupkg"
,
"Dapper.nuspec"
,
"System.Threading.Tasks.4.0.10-beta-22816.nupkg.sha512"
,
"lib/dnx451/Dapper.dll"
,
"System.Threading.Tasks.nuspec"
,
"lib/dnx451/Dapper.xml"
,
"lib/aspnetcore50/System.Threading.Tasks.dll"
,
"lib/net40/Dapper.dll"
,
"lib/contract/System.Threading.Tasks.dll"
,
"lib/net40/Dapper.xml"
,
"lib/net45/System.Threading.Tasks.dll"
,
"lib/net45/Dapper.dll"
,
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Tasks.dll"
"lib/net45/Dapper.xml"
]
},
"System.Threading.Thread/4.0.0-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"hq1pNoES0jEKslftDhBeJnRUBSjEepiya+39oH/7yCvOp4xMnXHlWe9G7ZS/dg2n4k+3VY21AUifisybcFjcCQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.Thread.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.Thread.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.Thread.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.Thread.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Threading.Thread.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Threading.Thread.dll"
]
]
}
}
},
},
"projectFileDependencyGroups"
:
{
"files"
:
[
""
:
[
"License.rtf"
,
"Dapper >= 1.41-*"
"System.Threading.Thread.4.0.0-beta-22816.nupkg"
,
"System.Threading.Thread.4.0.0-beta-22816.nupkg.sha512"
,
"System.Threading.Thread.nuspec"
,
"lib/aspnetcore50/System.Threading.Thread.dll"
,
"lib/contract/System.Threading.Thread.dll"
,
"lib/net45/System.Threading.Thread.dll"
,
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Threading.Thread.dll"
]
},
"System.Xml.ReaderWriter/4.0.10-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"G0aLPtC/phTfiJPwe0VA3tB3x8YFQ1dHFuE1xaHNr9eQm/AfBp4Pk+fn3s7ABJDus/T89EtIHQ9C+O6VmqXIQQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Xml"
],
],
".NETFramework,Version=v4.5
"
:
[
"runtimeAssemblies
"
:
[
"framework/System.Data >= 4.0.0.0
"
"lib/net45/System.Xml.ReaderWriter.dll
"
],
],
"DNX,Version=v4.5.1"
:
[
"compileAssemblies"
:
[
"framework/System.Data >= 4.0.0.0"
"lib/net45/System.Xml.ReaderWriter.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Xml"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Xml.ReaderWriter.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Xml.ReaderWriter.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Xml.ReaderWriter.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Xml.ReaderWriter.dll"
]
}
},
"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"
]
]
}
}
}
}
}
\ No newline at end of file
Dapper.DNX.sln
View file @
f32d318f
Microsoft Visual Studio Solution File, Format Version 12.00
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
# Visual Studio 14
VisualStudioVersion = 14.0.22
728
.1
VisualStudioVersion = 14.0.22
823
.1
MinimumVisualStudioVersion = 10.0.40219.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper", "Dapper\Dapper.xproj", "{088D8CC4-E71E-44B6-9B87-4060B043983D}"
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper", "Dapper\Dapper.xproj", "{088D8CC4-E71E-44B6-9B87-4060B043983D}"
EndProject
EndProject
...
@@ -9,8 +9,11 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper.DNX.Tests", "Dapper.
...
@@ -9,8 +9,11 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Dapper.DNX.Tests", "Dapper.
EndProject
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{03340C6E-4176-4C42-9C76-D5DFC79D1A22}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{03340C6E-4176-4C42-9C76-D5DFC79D1A22}"
ProjectSection(SolutionItems) = preProject
ProjectSection(SolutionItems) = preProject
Tests\Assert.cs = Tests\Assert.cs
Tests\Program.cs = Tests\Program.cs
Dapper NET40\SqlMapper.cs = Dapper NET40\SqlMapper.cs
Dapper NET40\SqlMapper.cs = Dapper NET40\SqlMapper.cs
Dapper NET45\SqlMapperAsync.cs = Dapper NET45\SqlMapperAsync.cs
Dapper NET45\SqlMapperAsync.cs = Dapper NET45\SqlMapperAsync.cs
Tests\Tests.cs = Tests\Tests.cs
EndProjectSection
EndProjectSection
EndProject
EndProject
Global
Global
...
...
Dapper/Dapper.xproj
View file @
f32d318f
...
@@ -14,6 +14,9 @@
...
@@ -14,6 +14,9 @@
<PropertyGroup
Label=
"Configuration"
Condition=
"'$(Configuration)|$(Platform)'=='Release|AnyCPU'"
>
<PropertyGroup
Label=
"Configuration"
Condition=
"'$(Configuration)|$(Platform)'=='Release|AnyCPU'"
>
<AssemblyName>
Dapper
</AssemblyName>
<AssemblyName>
Dapper
</AssemblyName>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup
Label=
"Configuration"
Condition=
"'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"
>
<AssemblyName>
Dapper
</AssemblyName>
</PropertyGroup>
<PropertyGroup>
<PropertyGroup>
<SchemaVersion>
2.0
</SchemaVersion>
<SchemaVersion>
2.0
</SchemaVersion>
</PropertyGroup>
</PropertyGroup>
...
...
Dapper/project.json
View file @
f32d318f
{
{
"authors"
:
[
"Sam Saffron"
,
"Marc Gravell"
],
"authors"
:
[
"Sam Saffron"
,
"Marc Gravell"
],
"owners"
:
[
"Sam Saffron"
,
"Marc Gravell"
],
"projectUrl"
:
"https://github.com/StackExchange/dapper-dot-net"
,
"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.."
,
"description"
:
"A high performance Micro-ORM supporting Sql Server, MySQL, Sqlite, SqlCE, Firebird etc.."
,
"version"
:
"1.41-
alpha
"
,
"version"
:
"1.41-
beta3
"
,
"compile"
:
[
"../Dapper NET40/*.cs"
,
"../Dapper NET45/*.cs"
],
"compile"
:
[
"../Dapper NET40/*.cs"
,
"../Dapper NET45/*.cs"
],
"title"
:
"Dapper dot net"
,
"tags"
:
[
"orm"
,
"sql"
,
"micro-orm"
],
"frameworks"
:
{
"frameworks"
:
{
"net45"
:
{
"net45"
:
{
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"dependencies"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
},
"frameworkAssemblies"
:
{
"frameworkAssemblies"
:
{
"System.Data"
:
"4.0.0.0"
"System.Data"
:
"4.0.0.0"
...
@@ -20,6 +27,14 @@
...
@@ -20,6 +27,14 @@
"System.Data"
:
"4.0.0.0"
"System.Data"
:
"4.0.0.0"
}
}
},
},
//
"net35"
:
{
//
"compilationOptions"
:
{
"warningsAsErrors"
:
true
,
"languageVersion"
:
"csharp3"
,
"define"
:
[
"CSHARP30"
]
},
//
"dependencies"
:
{
//
},
//
"frameworkAssemblies"
:
{
//
"System.Data"
:
"4.0.0.0"
//
}
//
},
"dnx451"
:
{
"dnx451"
:
{
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"compilationOptions"
:
{
"define"
:
[
"ASYNC"
],
"warningsAsErrors"
:
true
},
"dependencies"
:
{
"dependencies"
:
{
...
@@ -28,15 +43,25 @@
...
@@ -28,15 +43,25 @@
"System.Data"
:
"4.0.0.0"
"System.Data"
:
"4.0.0.0"
}
}
},
},
//
"dnxcore50"
:
{
"dnxcore50"
:
{
//
"dependencies"
:
{
"compilationOptions"
:
{
"define"
:
[
],
"warningsAsErrors"
:
true
},
//
"System.Runtime"
:
"4.0.20-beta-22716"
,
"dependencies"
:
{
//
"System.Data.Common"
:
"4.0.0-beta-*"
,
"System.Text.RegularExpressions"
:
"4.0.10-beta-*"
,
//
},
"System.Collections"
:
"4.0.10-beta-*"
,
//
"frameworkAssemblies"
:
{
"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.Runtime.Extensions"
:
"4.0.10-beta-*"
,
"System.Text.Encoding.CodePages"
:
"4.0.0-beta-*"
,
"System.Globalization"
:
"4.0.10-beta-*"
}
}
}
}
}
}
Dapper/project.lock.json
View file @
f32d318f
{
{
"locked"
:
false
,
"locked"
:
false
,
"version"
:
-9997
,
"version"
:
-9998
,
"targets"
:
{
"projectFileDependencyGroups"
:
{
""
:
[],
".NETFramework,Version=v4.5"
:
[
"System.Runtime >= 4.0.20-beta-22816"
,
"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.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.Runtime.Extensions >= 4.0.10-beta-*"
,
"System.Text.Encoding.CodePages >= 4.0.0-beta-*"
,
"System.Globalization >= 4.0.10-beta-*"
]
},
"libraries"
:
{
"Microsoft.CSharp/4.0.0-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"h+75iL9JfUbT0P8xOm9u0XSvk5+8GUD92VVwjbvJHqIcM23DVv2AjYVhVjTm6y923lNLn+qh/h4ViinL9RME2Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Dynamic.Runtime"
:
"4.0.10-beta-22816"
,
"System.Linq.Expressions"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/Microsoft.CSharp.dll"
],
"compileAssemblies"
:
[
"lib/contract/Microsoft.CSharp.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"pFwiLMtcsvAx8ZFsSIDVSuPAXXW2z1gkmE/YqiMELlxPVHKyJGrUZoJCIBfVg1HERxMnd1dyj7ffqj5Nx3mzGQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Collections.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Collections.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"mI2+5S3DG07KCur+L4sHleKLzFQEnXo8h3t4gS0awNFzyar8nVKNb95OkiECI68PLy/FM3HfVAuqb12qPw3CXg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Collections.Concurrent.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Collections.Concurrent.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Collections.Concurrent.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"7cRRCmUPaUbscio/n1MUgnY1IetH7fH19iuLrfahncpWkEkE6cZSMprkWYFp5CsWrky0OXAnbiW8ANsSGhfbFQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Data"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Data.Common.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Data.Common.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Data.Common.dll"
]
}
},
"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.Dynamic.Runtime/4.0.10-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"xPMym5hsntfLf/Gisnvk3t25TaZRvwDF46PaszRlB63WsDbAIUXgrsE4ob8ZKTL7+uyGW1HGwOBVlJCP/J1/hA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Dynamic.Runtime.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Dynamic.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Dynamic.Runtime.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"Bedo0Nd7solBPW1k52EmlA+RKm+yxT2Os8fiu27DK2fyBa68pdFNM9ckjZ1X2DW0E9q49IxRMaWpflTBerMb8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Globalization.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Globalization.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Globalization.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Globalization.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"/wVhoi2uVXw5IZFU+JrPlyVgKrtMPtzQaYQ3DKUxH9nqiX64BChTFGNDcwZK3iNWTIWESxJhj9JR3lbqbG/PIg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.IO.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.IO.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.IO.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.IO.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"QlwRD8FTiYAZ7BxEjB5u9vjKaAHZ6KvuZYm+4tjYduTIWpFI3o34UjowJXCaPlLwc8USRshAXLgnsQ3iaOjv8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Collections"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Linq.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Linq.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"qTu/alZVoEBZRIrbLzVlFSndQyhIEXY+qoBockbsUu98TDtd1N9gYiyg7FHeW7Qx1vDGfz1PWfUlYBd4G/ZHkg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Linq.Expressions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Linq.Expressions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Linq.Expressions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"Rtu5FLq7JTtignXiSEKx26Q01NHyoO3pTcYYdwF54kFC64VbHEcvs8b586JyVVpM7Wz0zBmdgHDrH9fv2MgeVw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.ObjectModel.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.ObjectModel.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.ObjectModel.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"vdH/6euCyI/0el+6baAh/pttTZyWDh/PfL2TebSri3+FvNkjIEcE4httMn7J/5Lqz+NMDcLP7wOlY4Aa5EazNg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.IO"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"vokOs6tgY2cnTcpPSs/fVcY8bybU7nwQ3I9H3JVLpF7t/fN2MaiSEvwTxEHmiCgDQbH5D7mMpCVxu97Fj5zyzA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"dMGaIL8QdIrp4aK5JkEFiUWdGixJtXDaIViszk0VZDzg1yL07+5DIJpbn3u77PQG2kqjG+kk3pyWFB3vLttVMQ=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.ILGeneration.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Reflection.Primitives"
:
"4.0.0-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.ILGeneration.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.ILGeneration.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"86ALfAR2qltFbss1KFm8e74JEM/Pmi1RaDfN+sB4E8wwqof7keUVI3HjA81fW3+YOH+HePYzw7m9bF4kd21OBw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"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"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Emit.Lightweight.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"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"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Emit.Lightweight.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Emit.Lightweight.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"LXGxjPbmTit9COY1WKRG89Eya58UFVqebeNvGDCrX/c/72OP9XX00+wUUE34WFDioKeVBjofOySFdtKMVsDq1Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Reflection.Primitives.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.Primitives.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.Primitives.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"VNe9Gt6E7jYfHWghPlX90EOkCL+q+7TAJHx4U7mJZMsxQmp/QrgEIcKCbG502/X/RUL4dqZkL/uG9QfOhDw/tg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Reflection"
:
"4.0.10-beta-22816"
,
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Reflection.TypeExtensions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Reflection.TypeExtensions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"sDSJEmM6Q5O7Nn9XxHTrsEJ4bv4hsBdeTWjuvyzd9/u9ujl9AWa3q1XFLrdPZetILPOC1P0+1LOCq4kZcsKF5Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
".NETFramework,Version=v4.5"
:
{
"Dapper/1.41-alpha"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[
"frameworkAssemblies"
:
[
"System.Data"
,
"mscorlib"
,
"mscorlib"
,
"System"
,
"System"
,
"System.Core
"
,
"System.ComponentModel.Composition
"
,
"Microsoft.CSharp
"
"System.Core
"
],
],
"compile
"
:
[
"runtimeAssemblies
"
:
[
"lib/net45/Dapper
.dll"
"lib/net45/System.Runtime
.dll"
],
],
"runtime
"
:
[
"compileAssemblies
"
:
[
"lib/net45/Dapper
.dll"
"lib/net45/System.Runtime
.dll"
]
]
}
},
},
".NETFramework,Version=v4.0"
:
{
".NETFramework,Version=v4.0"
:
{
"Dapper/1.41-alpha"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[
"frameworkAssemblies"
:
[
"System.Data"
,
"mscorlib"
,
"mscorlib"
,
"System"
,
"System"
,
"System.Core
"
,
"System.ComponentModel.Composition
"
,
"Microsoft.CSharp
"
"System.Core
"
],
],
"compile
"
:
[
"runtimeAssemblies
"
:
[
"lib/net40/Dapper
.dll"
"lib/net45/System.Runtime
.dll"
],
],
"runtime"
:
[
"compileAssemblies"
:
[
"lib/net40/Dapper.dll"
"lib/net45/System.Runtime.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Runtime.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Runtime.dll"
]
]
}
}
},
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"b8ymkNB0apTc/FCmyeB/Js1CMg8EBaOlM2biIKA94Dk0sT/yyGd8SyCeuZXiCGCIk6HpSiIsIdX53rXgTWxH0w=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"DNX,Version=v4.5.1"
:
{
"Dapper/1.41-alpha"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"frameworkAssemblies"
:
[
"System.Data"
,
"mscorlib"
,
"mscorlib"
,
"System"
,
"System"
"System.Core"
,
],
"Microsoft.CSharp"
"runtimeAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Runtime.Extensions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Runtime.Extensions.dll"
],
],
"compile"
:
[
"compileAssemblies"
:
[
"lib/dnx451/Dapper.dll"
"lib/contract/System.Runtime.Extensions.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"QDKTAvat7aDGMWnVkGm6tJvvmc2zSTa/p8M4/OEBBkZKNx4SGkeGEjFUhl7b6AXZ220m4dACygkiAVoB/LqMHw=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.Encoding.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.Encoding.dll"
],
],
"runtime
"
:
[
"compileAssemblies
"
:
[
"lib/dnx451/Dapper
.dll"
"lib/contract/System.Text.Encoding
.dll"
]
]
}
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"q52eEfAgtMfsNDbTetTX1EN337+2IyJTJH/DrRnFsdzfoyblYY/511USLsg4qmLriLS0kryXUZG3DzQsOfzt8Q=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Text.Encoding"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.Encoding.CodePages.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Text.Encoding.CodePages.dll"
]
}
},
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"f6reT2KQ1IjeAKeZEX5TSIFugrsmofjD3N+9HD4c2WAMFlEs4p4/ycsmS1bLlV7n+JRHsmUkhgpCVWMZYPk+aA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Text.RegularExpressions.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Text.RegularExpressions.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Text.RegularExpressions.dll"
]
}
}
},
},
"libraries"
:
{
"Dapper/1.41-alpha"
:
{
"sha512"
:
"dJPrw+E8nGHRydGRUddbjGUxQBR9w4d8ISLD8QM24FsRihEJjjlww+AFb77mK78qGFwkHAnpY2k8oZfpLR61gg=="
,
"files"
:
[
"files"
:
[
"Dapper.1.41-alpha.nupkg"
,
"License.rtf"
,
"Dapper.1.41-alpha.nupkg.sha512"
,
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg"
,
"Dapper.nuspec"
,
"System.Text.RegularExpressions.4.0.10-beta-22816.nupkg.sha512"
,
"lib/dnx451/Dapper.dll"
,
"System.Text.RegularExpressions.nuspec"
,
"lib/dnx451/Dapper.xml"
,
"lib/aspnetcore50/System.Text.RegularExpressions.dll"
,
"lib/net40/Dapper.dll"
,
"lib/contract/System.Text.RegularExpressions.dll"
,
"lib/net40/Dapper.xml"
,
"lib/net45/System.Text.RegularExpressions.dll"
,
"lib/net45/Dapper.dll"
,
"lib/portable-wpa81+wp80+win80+net45+aspnetcore50/System.Text.RegularExpressions.dll"
"lib/net45/Dapper.xml"
]
},
"System.Threading/4.0.10-beta-22816"
:
{
"serviceable"
:
false
,
"sha"
:
"GO4X3FuGlw4DJH+UbbKDXKnyyWiwlPJIX+Ys0UCzSdAPneBA42dPb2+kRakWy+wo6n6Gcv7ckkfa3j8MSSxbhg=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
,
"System.Threading.Tasks"
:
"4.0.10-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Threading.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Threading.dll"
]
]
}
}
},
},
"projectFileDependencyGroups"
:
{
"files"
:
[
""
:
[],
"License.rtf"
,
".NETFramework,Version=v4.5"
:
[
"System.Threading.4.0.10-beta-22816.nupkg"
,
"framework/System.Data >= 4.0.0.0"
"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"
:
{
"serviceable"
:
false
,
"sha"
:
"e7TcoQuIPQ4bvkkCY2ulU8NFvj8XqYxsGpD3fAq1KajAlpx5j327Q13lKxlGPb7ouHQydKHCy5G1ZGuydb0DAA=="
,
"frameworks"
:
{
".NETFramework,Version=v4.5"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
],
".NETFramework,Version=v4.0
"
:
[
"runtimeAssemblies
"
:
[
"framework/System.Data >= 4.0.0.0
"
"lib/net45/System.Threading.Tasks.dll
"
],
],
"DNX,Version=v4.5.1"
:
[
"compileAssemblies"
:
[
"framework/System.Data >= 4.0.0.0"
"lib/net45/System.Threading.Tasks.dll"
]
},
".NETFramework,Version=v4.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[],
"compileAssemblies"
:
[]
},
"DNX,Version=v4.5.1"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[
"mscorlib"
,
"System.Core"
],
"runtimeAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
],
"compileAssemblies"
:
[
"lib/net45/System.Threading.Tasks.dll"
]
},
"DNXCore,Version=v5.0"
:
{
"dependencies"
:
{
"System.Runtime"
:
"4.0.20-beta-22816"
},
"frameworkAssemblies"
:
[],
"runtimeAssemblies"
:
[
"lib/aspnetcore50/System.Threading.Tasks.dll"
],
"compileAssemblies"
:
[
"lib/contract/System.Threading.Tasks.dll"
]
}
},
"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"
]
]
}
}
}
}
}
\ No newline at end of file
DapperTests NET35/DapperTests NET35.csproj
View file @
f32d318f
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<DebugType>
full
</DebugType>
<DebugType>
full
</DebugType>
<Optimize>
false
</Optimize>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug\
</OutputPath>
<OutputPath>
bin\Debug\
</OutputPath>
<DefineConstants>
TRACE;DEBUG;NET35
</DefineConstants>
<DefineConstants>
TRACE;DEBUG;NET35
EXTERNALS
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
</PropertyGroup>
</PropertyGroup>
...
@@ -30,9 +30,10 @@
...
@@ -30,9 +30,10 @@
<DebugType>
pdbonly
</DebugType>
<DebugType>
pdbonly
</DebugType>
<Optimize>
true
</Optimize>
<Optimize>
true
</Optimize>
<OutputPath>
bin\Release\
</OutputPath>
<OutputPath>
bin\Release\
</OutputPath>
<DefineConstants>
TRACE;NET35
</DefineConstants>
<DefineConstants>
TRACE;NET35
EXTERNALS
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<AllowUnsafeBlocks>
true
</AllowUnsafeBlocks>
</PropertyGroup>
</PropertyGroup>
<ItemGroup>
<ItemGroup>
<Reference
Include=
"System"
/>
<Reference
Include=
"System"
/>
...
...
DapperTests NET45/DapperTests NET45.csproj
View file @
f32d318f
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<DebugType>
full
</DebugType>
<DebugType>
full
</DebugType>
<Optimize>
false
</Optimize>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug\
</OutputPath>
<OutputPath>
bin\Debug\
</OutputPath>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<DefineConstants>
TRACE;DEBUG;EXTERNALS
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
</PropertyGroup>
</PropertyGroup>
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<DebugType>
pdbonly
</DebugType>
<DebugType>
pdbonly
</DebugType>
<Optimize>
true
</Optimize>
<Optimize>
true
</Optimize>
<OutputPath>
bin\Release\
</OutputPath>
<OutputPath>
bin\Release\
</OutputPath>
<DefineConstants>
TRACE
</DefineConstants>
<DefineConstants>
TRACE
;EXTERNALS
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
</PropertyGroup>
</PropertyGroup>
...
...
Tests/Assert.cs
View file @
f32d318f
...
@@ -3,6 +3,10 @@
...
@@ -3,6 +3,10 @@
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
#if DNXCORE50
using
ApplicationException
=
global
::
System
.
InvalidOperationException
;
#endif
namespace
SqlMapper
namespace
SqlMapper
{
{
static
class
Assert
static
class
Assert
...
...
Tests/DapperTests NET40.csproj
View file @
f32d318f
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
<DebugType>
full
</DebugType>
<DebugType>
full
</DebugType>
<Optimize>
false
</Optimize>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug\
</OutputPath>
<OutputPath>
bin\Debug\
</OutputPath>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<DefineConstants>
TRACE;DEBUG;EXTERNALS PERF
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<Prefer32Bit>
false
</Prefer32Bit>
<Prefer32Bit>
false
</Prefer32Bit>
...
@@ -32,10 +32,11 @@
...
@@ -32,10 +32,11 @@
<DebugType>
pdbonly
</DebugType>
<DebugType>
pdbonly
</DebugType>
<Optimize>
true
</Optimize>
<Optimize>
true
</Optimize>
<OutputPath>
bin\Release\
</OutputPath>
<OutputPath>
bin\Release\
</OutputPath>
<DefineConstants>
TRACE
</DefineConstants>
<DefineConstants>
TRACE
;EXTERNALS PERF
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
<WarningLevel>
4
</WarningLevel>
<Prefer32Bit>
false
</Prefer32Bit>
<Prefer32Bit>
false
</Prefer32Bit>
<AllowUnsafeBlocks>
false
</AllowUnsafeBlocks>
</PropertyGroup>
</PropertyGroup>
<ItemGroup>
<ItemGroup>
<Reference
Include=
"BLToolkit.4"
>
<Reference
Include=
"BLToolkit.4"
>
...
...
Tests/Program.cs
View file @
f32d318f
...
@@ -3,14 +3,18 @@
...
@@ -3,14 +3,18 @@
using
System.Reflection
;
using
System.Reflection
;
using
System.Linq
;
using
System.Linq
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
namespace
SqlMapper
namespace
SqlMapper
{
{
#if EXTERNALS
[
ServiceStack
.
DataAnnotations
.
Alias
(
"Posts"
)]
[
ServiceStack
.
DataAnnotations
.
Alias
(
"Posts"
)]
[
Soma
.
Core
.
Table
(
Name
=
"Posts"
)]
[
Soma
.
Core
.
Table
(
Name
=
"Posts"
)]
#endif
public
class
Post
public
class
Post
{
{
#if EXTERNALS
[
Soma
.
Core
.
Id
(
Soma
.
Core
.
IdKind
.
Identity
)]
[
Soma
.
Core
.
Id
(
Soma
.
Core
.
IdKind
.
Identity
)]
#endif
public
int
Id
{
get
;
set
;
}
public
int
Id
{
get
;
set
;
}
public
string
Text
{
get
;
set
;
}
public
string
Text
{
get
;
set
;
}
public
DateTime
CreationDate
{
get
;
set
;
}
public
DateTime
CreationDate
{
get
;
set
;
}
...
@@ -42,24 +46,37 @@ public static SqlConnection GetOpenConnection()
...
@@ -42,24 +46,37 @@ public static SqlConnection GetOpenConnection()
static
void
RunPerformanceTests
()
static
void
RunPerformanceTests
()
{
{
#if PERF
var
test
=
new
PerformanceTests
();
var
test
=
new
PerformanceTests
();
const
int
iterations
=
500
;
const
int
iterations
=
500
;
Console
.
WriteLine
(
"Running {0} iterations that load up a post entity"
,
iterations
);
Console
.
WriteLine
(
"Running {0} iterations that load up a post entity"
,
iterations
);
test
.
Run
(
iterations
);
test
.
Run
(
iterations
);
#else
Console
.
WriteLine
(
"Performance tests have not been built; add the PERF symbol"
);
#endif
}
}
static
void
Main
()
static
void
Main
()
{
{
#if DNXCORE50
Console
.
WriteLine
(
"CoreCLR"
);
#else
Console
.
WriteLine
(
Environment
.
Version
);
#endif
#if DEBUG
#if DEBUG
RunTests
();
RunTests
();
#else
#else
EnsureDBSetup
();
EnsureDBSetup
();
RunPerformanceTests
();
RunPerformanceTests
();
#endif
#endif
Console
.
WriteLine
(
"(end of tests; press any key)"
);
#if DNXCORE50
Console
.
WriteLine
(
"(end of tests; press return)"
);
Console
.
ReadLine
();
#else
Console
.
WriteLine
(
"(end of tests; press any key)"
);
Console
.
ReadKey
();
Console
.
ReadKey
();
#endif
}
}
private
static
void
EnsureDBSetup
()
private
static
void
EnsureDBSetup
()
...
@@ -110,42 +127,81 @@ insert Posts ([Text],CreationDate, LastChangeDate) values (replicate('x', 2000),
...
@@ -110,42 +127,81 @@ insert Posts ([Text],CreationDate, LastChangeDate) values (replicate('x', 2000),
cmd
.
ExecuteNonQuery
();
cmd
.
ExecuteNonQuery
();
}
}
}
}
private
static
bool
HasAttribute
<
T
>(
MemberInfo
member
)
where
T
:
Attribute
{
#if DNXCORE50
return
member
.
CustomAttributes
.
Any
(
x
=>
x
.
AttributeType
==
typeof
(
T
));
#else
return
Attribute
.
IsDefined
(
member
,
typeof
(
T
),
true
);
#endif
}
private
static
void
RunTests
()
private
static
void
RunTests
()
{
{
var
tester
=
new
Tests
();
var
tester
=
new
Tests
();
int
fail
=
0
;
int
fail
=
0
,
skip
=
0
,
pass
=
0
,
frameworkFail
=
0
;
MethodInfo
[]
methods
=
typeof
(
Tests
).
GetMethods
(
BindingFlags
.
Public
|
BindingFlags
.
Instance
|
BindingFlags
.
DeclaredOnly
);
MethodInfo
[]
methods
=
typeof
(
Tests
).
GetMethods
(
BindingFlags
.
Public
|
BindingFlags
.
Instance
|
BindingFlags
.
DeclaredOnly
);
var
activeTests
=
methods
.
Where
(
m
=>
Attribute
.
IsDefined
(
m
,
typeof
(
ActiveTestAttribute
)
)).
ToArray
();
var
activeTests
=
methods
.
Where
(
m
=>
HasAttribute
<
ActiveTestAttribute
>(
m
)).
ToArray
();
if
(
activeTests
.
Length
!=
0
)
methods
=
activeTests
;
if
(
activeTests
.
Length
!=
0
)
methods
=
activeTests
;
List
<
string
>
failNames
=
new
List
<
string
>();
List
<
string
>
failNames
=
new
List
<
string
>();
foreach
(
var
method
in
methods
)
foreach
(
var
method
in
methods
)
{
{
if
(
HasAttribute
<
SkipTestAttribute
>(
method
))
{
Console
.
Write
(
"Skipping "
+
method
.
Name
);
skip
++;
continue
;
}
bool
expectFrameworkFail
=
HasAttribute
<
FrameworkFail
>(
method
);
Console
.
Write
(
"Running "
+
method
.
Name
);
Console
.
Write
(
"Running "
+
method
.
Name
);
try
try
{
{
method
.
Invoke
(
tester
,
null
);
method
.
Invoke
(
tester
,
null
);
if
(
expectFrameworkFail
)
{
Console
.
WriteLine
(
" - was expected to framework-fail, but didn't"
);
fail
++;
failNames
.
Add
(
method
.
Name
);
}
else
{
Console
.
WriteLine
(
" - OK!"
);
Console
.
WriteLine
(
" - OK!"
);
pass
++;
}
}
catch
(
TargetInvocationException
tie
)
}
catch
(
TargetInvocationException
tie
)
{
{
fail
++;
Console
.
WriteLine
(
" - "
+
tie
.
InnerException
.
Message
);
Console
.
WriteLine
(
" - "
+
tie
.
InnerException
.
Message
);
if
(
expectFrameworkFail
)
{
frameworkFail
++;
}
else
{
fail
++;
failNames
.
Add
(
method
.
Name
);
failNames
.
Add
(
method
.
Name
);
if
(
tie
.
InnerException
is
TypeInitializationException
)
{
Console
.
WriteLine
(
"> "
+
tie
.
InnerException
.
InnerException
.
Message
);
}
}
}
catch
(
Exception
ex
)
}
catch
(
Exception
ex
)
{
{
fail
++;
fail
++;
Console
.
WriteLine
(
" - "
+
ex
.
Message
);
Console
.
WriteLine
(
" - "
+
ex
.
Message
);
failNames
.
Add
(
method
.
Name
);
}
}
}
}
Console
.
WriteLine
();
Console
.
WriteLine
();
Console
.
WriteLine
(
"Passed: {0}, Failed: {1}, Skipped: {2}, Framework-fail: {3}"
,
pass
,
fail
,
skip
,
frameworkFail
);
if
(
fail
==
0
)
if
(
fail
==
0
)
{
{
Console
.
WriteLine
(
"(all tests successful)"
);
Console
.
WriteLine
(
"(all tests successful)"
);
}
}
else
else
{
{
Console
.
WriteLine
(
"
#### FAILED: {0}"
,
fail
);
Console
.
WriteLine
(
"
Failures:"
);
foreach
(
var
failName
in
failNames
)
foreach
(
var
failName
in
failNames
)
{
{
Console
.
WriteLine
(
failName
);
Console
.
WriteLine
(
failName
);
...
@@ -156,5 +212,15 @@ private static void RunTests()
...
@@ -156,5 +212,15 @@ private static void RunTests()
[
AttributeUsage
(
AttributeTargets
.
Method
,
AllowMultiple
=
false
)]
[
AttributeUsage
(
AttributeTargets
.
Method
,
AllowMultiple
=
false
)]
public
sealed
class
ActiveTestAttribute
:
Attribute
{}
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
)
{
this
.
Url
=
url
;
}
public
string
Url
{
get
;
private
set
;
}
}
}
}
Tests/Tests.cs
View file @
f32d318f
//#define POSTGRESQL // uncomment to run postgres tests
//#define POSTGRESQL // uncomment to run postgres tests
#if DNXCORE50
using
IDbCommand
=
global
::
System
.
Data
.
Common
.
DbCommand
;
using
IDbDataParameter
=
global
::
System
.
Data
.
Common
.
DbParameter
;
using
IDbConnection
=
global
::
System
.
Data
.
Common
.
DbConnection
;
using
IDbTransaction
=
global
::
System
.
Data
.
Common
.
DbTransaction
;
using
IDataReader
=
global
::
System
.
Data
.
Common
.
DbDataReader
;
#endif
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Data.SqlClient
;
using
System.Data.SqlClient
;
using
System.Linq
;
using
System.Linq
;
using
Dapper
;
using
Dapper
;
using
System.Data.SqlServerCe
;
using
System.IO
;
using
System.IO
;
using
System.Data
;
using
System.Data
;
using
System.Collections
;
using
System.Collections
;
...
@@ -15,14 +23,46 @@
...
@@ -15,14 +23,46 @@
using
System.Data.Common
;
using
System.Data.Common
;
using
System.Globalization
;
using
System.Globalization
;
using
System.Threading
;
using
System.Threading
;
using
System.Data.Entity.Spatial
;
using
Microsoft.SqlServer.Types
;
using
System.Data.SqlTypes
;
using
System.Data.SqlTypes
;
using
FirebirdSql.Data.FirebirdClient
;
using
System.Diagnostics
;
using
System.Diagnostics
;
#if EXTERNALS
using
FirebirdSql.Data.FirebirdClient
;
using
System.Data.Entity.Spatial
;
using
Microsoft.SqlServer.Types
;
using
System.Data.SqlServerCe
;
#if POSTGRESQL
#if POSTGRESQL
using
Npgsql
;
using
Npgsql
;
#endif
#endif
#endif
#if DNXCORE50
namespace
System.ComponentModel
{
public
sealed
class
DescriptionAttribute
:
Attribute
{
public
DescriptionAttribute
(
string
description
)
{
Description
=
description
;
}
public
string
Description
{
get
;
private
set
;}
}
}
namespace
System
{
public
enum
GenericUriParserOptions
{
Default
}
public
class
GenericUriParser
{
private
GenericUriParserOptions
options
;
public
GenericUriParser
(
GenericUriParserOptions
options
)
{
this
.
options
=
options
;
}
}
}
#endif
namespace
SqlMapper
namespace
SqlMapper
{
{
...
@@ -222,7 +262,7 @@ public void TestNoDefaultConstructorWithEnum()
...
@@ -222,7 +262,7 @@ public void TestNoDefaultConstructorWithEnum()
nodef
.
NE1
.
IsEqualTo
(
ShortEnum
.
Five
);
nodef
.
NE1
.
IsEqualTo
(
ShortEnum
.
Five
);
nodef
.
NE2
.
IsEqualTo
(
null
);
nodef
.
NE2
.
IsEqualTo
(
null
);
}
}
#if EXTERNALS
class
NoDefaultConstructorWithBinary
class
NoDefaultConstructorWithBinary
{
{
public
System
.
Data
.
Linq
.
Binary
Value
{
get
;
set
;
}
public
System
.
Data
.
Linq
.
Binary
Value
{
get
;
set
;
}
...
@@ -232,7 +272,6 @@ public NoDefaultConstructorWithBinary(System.Data.Linq.Binary val)
...
@@ -232,7 +272,6 @@ public NoDefaultConstructorWithBinary(System.Data.Linq.Binary val)
Value
=
val
;
Value
=
val
;
}
}
}
}
public
void
TestNoDefaultConstructorBinary
()
public
void
TestNoDefaultConstructorBinary
()
{
{
byte
[]
orig
=
new
byte
[
20
];
byte
[]
orig
=
new
byte
[
20
];
...
@@ -241,6 +280,7 @@ public void TestNoDefaultConstructorBinary()
...
@@ -241,6 +280,7 @@ public void TestNoDefaultConstructorBinary()
var
output
=
connection
.
Query
<
NoDefaultConstructorWithBinary
>(
"select @input as val"
,
new
{
input
}).
First
().
Value
;
var
output
=
connection
.
Query
<
NoDefaultConstructorWithBinary
>(
"select @input as val"
,
new
{
input
}).
First
().
Value
;
output
.
ToArray
().
IsSequenceEqualTo
(
orig
);
output
.
ToArray
().
IsSequenceEqualTo
(
orig
);
}
}
#endif
// http://stackoverflow.com/q/8593871
// http://stackoverflow.com/q/8593871
public
void
TestAbstractInheritance
()
public
void
TestAbstractInheritance
()
...
@@ -515,7 +555,7 @@ public void TestExtraFields()
...
@@ -515,7 +555,7 @@ public void TestExtraFields()
dog
.
First
().
Id
dog
.
First
().
Id
.
IsEqualTo
(
guid
);
.
IsEqualTo
(
guid
);
}
}
#if EXTERNALS
// see http://stackoverflow.com/q/18847510/23354
// see http://stackoverflow.com/q/18847510/23354
public
void
TestOleDbParameters
()
public
void
TestOleDbParameters
()
{
{
...
@@ -537,7 +577,7 @@ System.Data.OleDb.OleDbConnection ConnectViaOledb()
...
@@ -537,7 +577,7 @@ System.Data.OleDb.OleDbConnection ConnectViaOledb()
conn
.
Open
();
conn
.
Open
();
return
conn
;
return
conn
;
}
}
#endif
public
void
TestStrongType
()
public
void
TestStrongType
()
{
{
var
guid
=
Guid
.
NewGuid
();
var
guid
=
Guid
.
NewGuid
();
...
@@ -1109,7 +1149,7 @@ public void TestFieldsAndPrivates()
...
@@ -1109,7 +1149,7 @@ public void TestFieldsAndPrivates()
}
}
#if EXTERNALS
public
void
ExecuteReader
()
public
void
ExecuteReader
()
{
{
var
dt
=
new
DataTable
();
var
dt
=
new
DataTable
();
...
@@ -1121,7 +1161,7 @@ public void ExecuteReader()
...
@@ -1121,7 +1161,7 @@ public void ExecuteReader()
((
int
)
dt
.
Rows
[
0
][
0
]).
IsEqualTo
(
3
);
((
int
)
dt
.
Rows
[
0
][
0
]).
IsEqualTo
(
3
);
((
int
)
dt
.
Rows
[
0
][
1
]).
IsEqualTo
(
4
);
((
int
)
dt
.
Rows
[
0
][
1
]).
IsEqualTo
(
4
);
}
}
#endif
private
class
TestFieldCaseAndPrivatesEntity
private
class
TestFieldCaseAndPrivatesEntity
{
{
public
int
a
{
get
;
set
;
}
public
int
a
{
get
;
set
;
}
...
@@ -1235,7 +1275,7 @@ public class AuthorCE
...
@@ -1235,7 +1275,7 @@ public class AuthorCE
public
int
ID
{
get
;
set
;
}
public
int
ID
{
get
;
set
;
}
public
string
Name
{
get
;
set
;
}
public
string
Name
{
get
;
set
;
}
}
}
#if EXTERNALS
public
void
MultiRSSqlCE
()
public
void
MultiRSSqlCE
()
{
{
if
(
File
.
Exists
(
"Test.sdf"
))
if
(
File
.
Exists
(
"Test.sdf"
))
...
@@ -1264,7 +1304,7 @@ public void MultiRSSqlCE()
...
@@ -1264,7 +1304,7 @@ public void MultiRSSqlCE()
cnn
.
Close
();
cnn
.
Close
();
}
}
}
}
#endif
enum
TestEnum
:
byte
enum
TestEnum
:
byte
{
{
Bla
=
1
Bla
=
1
...
@@ -1656,7 +1696,7 @@ public void AddParameters(IDbCommand command, Dapper.SqlMapper.Identity identity
...
@@ -1656,7 +1696,7 @@ public void AddParameters(IDbCommand command, Dapper.SqlMapper.Identity identity
}
}
}
}
#if EXTERNALS
// SQL Server specific test to demonstrate TVP
// SQL Server specific test to demonstrate TVP
public
void
TestTVP
()
public
void
TestTVP
()
{
{
...
@@ -1755,7 +1795,7 @@ public void TestTVPWithAdditionalParams()
...
@@ -1755,7 +1795,7 @@ public void TestTVPWithAdditionalParams()
}
}
}
}
}
}
#endif
class
IntCustomParam
:
Dapper
.
SqlMapper
.
ICustomQueryParameter
class
IntCustomParam
:
Dapper
.
SqlMapper
.
ICustomQueryParameter
{
{
IEnumerable
<
int
>
numbers
;
IEnumerable
<
int
>
numbers
;
...
@@ -1789,7 +1829,7 @@ public void AddParameter(IDbCommand command, string name)
...
@@ -1789,7 +1829,7 @@ public void AddParameter(IDbCommand command, string name)
p
.
Value
=
number_list
;
p
.
Value
=
number_list
;
}
}
}
}
#if EXTERNALS
public
void
TestTVPWithAnonymousObject
()
public
void
TestTVPWithAnonymousObject
()
{
{
try
try
...
@@ -1816,6 +1856,7 @@ public void TestTVPWithAnonymousObject()
...
@@ -1816,6 +1856,7 @@ public void TestTVPWithAnonymousObject()
}
}
}
}
}
}
#endif
class
Parent
class
Parent
{
{
...
@@ -1864,6 +1905,7 @@ class WithBizarreData
...
@@ -1864,6 +1905,7 @@ class WithBizarreData
public
GenericUriParser
Foo
{
get
;
set
;
}
public
GenericUriParser
Foo
{
get
;
set
;
}
public
int
Bar
{
get
;
set
;
}
public
int
Bar
{
get
;
set
;
}
}
}
public
void
TestUnexpectedDataMessage
()
public
void
TestUnexpectedDataMessage
()
{
{
string
msg
=
null
;
string
msg
=
null
;
...
@@ -1878,6 +1920,7 @@ public void TestUnexpectedDataMessage()
...
@@ -1878,6 +1920,7 @@ public void TestUnexpectedDataMessage()
}
}
msg
.
IsEqualTo
(
"The member Foo of type System.GenericUriParser cannot be used as a parameter value"
);
msg
.
IsEqualTo
(
"The member Foo of type System.GenericUriParser cannot be used as a parameter value"
);
}
}
public
void
TestUnexpectedButFilteredDataMessage
()
public
void
TestUnexpectedButFilteredDataMessage
()
{
{
int
i
=
connection
.
Query
<
int
>(
"select @Bar"
,
new
WithBizarreData
{
Foo
=
new
GenericUriParser
(
GenericUriParserOptions
.
Default
),
Bar
=
23
}).
Single
();
int
i
=
connection
.
Query
<
int
>(
"select @Bar"
,
new
WithBizarreData
{
Foo
=
new
GenericUriParser
(
GenericUriParserOptions
.
Default
),
Bar
=
23
}).
Single
();
...
@@ -2094,6 +2137,8 @@ public void TestMultiMapperIsNotConfusedWithUnorderedCols()
...
@@ -2094,6 +2137,8 @@ public void TestMultiMapperIsNotConfusedWithUnorderedCols()
result
.
Item2
.
BarId
.
IsEqualTo
(
3
);
result
.
Item2
.
BarId
.
IsEqualTo
(
3
);
result
.
Item2
.
Name
.
IsEqualTo
(
"a"
);
result
.
Item2
.
Name
.
IsEqualTo
(
"a"
);
}
}
#if EXTERNALS
public
void
TestLinqBinaryToClass
()
public
void
TestLinqBinaryToClass
()
{
{
byte
[]
orig
=
new
byte
[
20
];
byte
[]
orig
=
new
byte
[
20
];
...
@@ -2120,7 +2165,7 @@ class WithBinary
...
@@ -2120,7 +2165,7 @@ class WithBinary
{
{
public
System
.
Data
.
Linq
.
Binary
Value
{
get
;
set
;
}
public
System
.
Data
.
Linq
.
Binary
Value
{
get
;
set
;
}
}
}
#endif
class
WithPrivateConstructor
class
WithPrivateConstructor
{
{
...
@@ -2489,7 +2534,7 @@ public void TestCustomTypeMap()
...
@@ -2489,7 +2534,7 @@ public void TestCustomTypeMap()
// custom mapping
// custom mapping
var
map
=
new
CustomPropertyTypeMap
(
typeof
(
TypeWithMapping
),
var
map
=
new
CustomPropertyTypeMap
(
typeof
(
TypeWithMapping
),
(
type
,
columnName
)
=>
type
.
GetProperties
().
Where
(
prop
=>
prop
.
GetCustomAttributes
(
false
).
OfType
<
DescriptionAttribute
>().
Any
(
attr
=>
attr
.
Description
==
columnName
)
).
FirstOrDefault
());
(
type
,
columnName
)
=>
type
.
GetProperties
().
Where
(
prop
=>
GetDescriptionFromAttribute
(
prop
)
==
columnName
).
FirstOrDefault
());
Dapper
.
SqlMapper
.
SetTypeMap
(
typeof
(
TypeWithMapping
),
map
);
Dapper
.
SqlMapper
.
SetTypeMap
(
typeof
(
TypeWithMapping
),
map
);
item
=
connection
.
Query
<
TypeWithMapping
>(
"Select 'AVal' as A, 'BVal' as B"
).
Single
();
item
=
connection
.
Query
<
TypeWithMapping
>(
"Select 'AVal' as A, 'BVal' as B"
).
Single
();
...
@@ -2502,7 +2547,17 @@ public void TestCustomTypeMap()
...
@@ -2502,7 +2547,17 @@ public void TestCustomTypeMap()
item
.
A
.
IsEqualTo
(
"AVal"
);
item
.
A
.
IsEqualTo
(
"AVal"
);
item
.
B
.
IsEqualTo
(
"BVal"
);
item
.
B
.
IsEqualTo
(
"BVal"
);
}
}
static
string
GetDescriptionFromAttribute
(
MemberInfo
member
)
{
if
(
member
==
null
)
return
null
;
#if DNXCORE50
var
data
=
member
.
CustomAttributes
.
FirstOrDefault
(
x
=>
x
.
AttributeType
==
typeof
(
DescriptionAttribute
));
return
data
==
null
?
null
:
(
string
)
data
.
ConstructorArguments
.
Single
().
Value
;
#else
var
attrib
=
(
DescriptionAttribute
)
Attribute
.
GetCustomAttribute
(
member
,
typeof
(
DescriptionAttribute
),
false
);
return
attrib
==
null
?
null
:
attrib
.
Description
;
#endif
}
public
class
TypeWithMapping
public
class
TypeWithMapping
{
{
[
Description
(
"B"
)]
[
Description
(
"B"
)]
...
@@ -2872,7 +2927,70 @@ public void TestChangingDefaultStringTypeMappingToAnsiString()
...
@@ -2872,7 +2927,70 @@ public void TestChangingDefaultStringTypeMappingToAnsiString()
Dapper
.
SqlMapper
.
PurgeQueryCache
();
Dapper
.
SqlMapper
.
PurgeQueryCache
();
Dapper
.
SqlMapper
.
AddTypeMap
(
typeof
(
string
),
DbType
.
String
);
// Restore Default to Unicode String
Dapper
.
SqlMapper
.
AddTypeMap
(
typeof
(
string
),
DbType
.
String
);
// Restore Default to Unicode String
}
}
#if DNXCORE50
class
TransactedConnection
:
IDbConnection
{
IDbConnection
_conn
;
IDbTransaction
_tran
;
public
TransactedConnection
(
IDbConnection
conn
,
IDbTransaction
tran
)
{
_conn
=
conn
;
_tran
=
tran
;
}
public
override
string
ConnectionString
{
get
{
return
_conn
.
ConnectionString
;
}
set
{
_conn
.
ConnectionString
=
value
;
}
}
public
override
int
ConnectionTimeout
{
get
{
return
_conn
.
ConnectionTimeout
;
}
}
public
override
string
Database
{
get
{
return
_conn
.
Database
;
}
}
public
override
ConnectionState
State
{
get
{
return
_conn
.
State
;
}
}
protected
override
IDbTransaction
BeginDbTransaction
(
IsolationLevel
isolationLevel
)
{
return
_tran
;
}
public
override
void
ChangeDatabase
(
string
databaseName
)
{
_conn
.
ChangeDatabase
(
databaseName
);
}
public
override
string
DataSource
{
get
{
return
_conn
.
DataSource
;
}
}
public
override
string
ServerVersion
{
get
{
return
_conn
.
ServerVersion
;
}
}
public
override
void
Close
()
{
_conn
.
Close
();
}
protected
override
IDbCommand
CreateDbCommand
()
{
// The command inherits the "current" transaction.
var
command
=
_conn
.
CreateCommand
();
command
.
Transaction
=
_tran
;
return
command
;
}
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
)
_conn
.
Dispose
();
base
.
Dispose
(
disposing
);
}
public
override
void
Open
()
{
_conn
.
Open
();
}
}
#else
class
TransactedConnection
:
IDbConnection
class
TransactedConnection
:
IDbConnection
{
{
IDbConnection
_conn
;
IDbConnection
_conn
;
...
@@ -2927,7 +3045,7 @@ public void Open()
...
@@ -2927,7 +3045,7 @@ public void Open()
_conn
.
Open
();
_conn
.
Open
();
}
}
}
}
#endif
public
void
TestDapperTableMetadataRetrieval
()
public
void
TestDapperTableMetadataRetrieval
()
{
{
// Test for a bug found in CS 51509960 where the following sequence would result in an InvalidOperationException being
// Test for a bug found in CS 51509960 where the following sequence would result in an InvalidOperationException being
...
@@ -3004,20 +3122,29 @@ public void TestDoubleDecimalConversions_SO18228523_Nulls()
...
@@ -3004,20 +3122,29 @@ public void TestDoubleDecimalConversions_SO18228523_Nulls()
row
.
C
.
Equals
(
0.0
M
);
row
.
C
.
Equals
(
0.0
M
);
row
.
D
.
IsNull
();
row
.
D
.
IsNull
();
}
}
private
static
CultureInfo
ActiveCulture
{
#if DNXCORE50
get
{
return
CultureInfo
.
CurrentCulture
;
}
set
{
CultureInfo
.
CurrentCulture
=
value
;
}
#else
get
{
return
Thread
.
CurrentThread
.
CurrentCulture
;
}
set
{
Thread
.
CurrentThread
.
CurrentCulture
=
value
;
}
#endif
}
public
void
TestParameterInclusionNotSensitiveToCurrentCulture
()
public
void
TestParameterInclusionNotSensitiveToCurrentCulture
()
{
{
// note this might fail if your database server is case-sensitive
// note this might fail if your database server is case-sensitive
CultureInfo
current
=
Thread
.
CurrentThread
.
Current
Culture
;
CultureInfo
current
=
Active
Culture
;
try
try
{
{
Thread
.
CurrentThread
.
Current
Culture
=
new
CultureInfo
(
"tr-TR"
);
Active
Culture
=
new
CultureInfo
(
"tr-TR"
);
connection
.
Query
<
int
>(
"select @pid"
,
new
{
PId
=
1
}).
Single
();
connection
.
Query
<
int
>(
"select @pid"
,
new
{
PId
=
1
}).
Single
();
}
}
finally
finally
{
{
Thread
.
CurrentThread
.
Current
Culture
=
current
;
Active
Culture
=
current
;
}
}
}
}
public
void
LiteralReplacement
()
public
void
LiteralReplacement
()
...
@@ -3054,6 +3181,22 @@ enum AnotherEnum : byte
...
@@ -3054,6 +3181,22 @@ enum AnotherEnum : byte
A
=
2
,
A
=
2
,
B
=
1
B
=
1
}
}
#if DNXCORE50
[
FrameworkFail
(
"https://github.com/dotnet/corefx/issues/1613"
)]
#endif
public
void
AdoNetEnumValue
()
{
using
(
var
cmd
=
connection
.
CreateCommand
())
{
cmd
.
CommandText
=
"select @foo"
;
cmd
.
Parameters
.
AddWithValue
(
"@foo"
,
AnEnum
.
B
);
object
value
=
cmd
.
ExecuteScalar
();
AnEnum
val
=
(
AnEnum
)
value
;
val
.
IsEqualTo
(
AnEnum
.
B
);
}
}
public
void
LiteralReplacementEnumAndString
()
public
void
LiteralReplacementEnumAndString
()
{
{
var
args
=
new
{
x
=
AnEnum
.
B
,
y
=
123.45
M
,
z
=
AnotherEnum
.
A
};
var
args
=
new
{
x
=
AnEnum
.
B
,
y
=
123.45
M
,
z
=
AnotherEnum
.
A
};
...
@@ -3065,6 +3208,7 @@ public void LiteralReplacementEnumAndString()
...
@@ -3065,6 +3208,7 @@ public void LiteralReplacementEnumAndString()
y
.
Equals
(
123.45
M
);
y
.
Equals
(
123.45
M
);
z
.
Equals
(
AnotherEnum
.
A
);
z
.
Equals
(
AnotherEnum
.
A
);
}
}
public
void
LiteralReplacementDynamicEnumAndString
()
public
void
LiteralReplacementDynamicEnumAndString
()
{
{
var
args
=
new
DynamicParameters
();
var
args
=
new
DynamicParameters
();
...
@@ -3173,7 +3317,7 @@ class HasDoubleDecimal
...
@@ -3173,7 +3317,7 @@ class HasDoubleDecimal
public
decimal
C
{
get
;
set
;
}
public
decimal
C
{
get
;
set
;
}
public
decimal
?
D
{
get
;
set
;
}
public
decimal
?
D
{
get
;
set
;
}
}
}
#if EXTERNALS
public
void
DataTableParameters
()
public
void
DataTableParameters
()
{
{
try
{
connection
.
Execute
(
"drop proc #DataTableParameters"
);
}
try
{
connection
.
Execute
(
"drop proc #DataTableParameters"
);
}
...
@@ -3277,7 +3421,7 @@ public void SupportInit()
...
@@ -3277,7 +3421,7 @@ public void SupportInit()
obj
.
Value
.
Equals
(
"abc"
);
obj
.
Value
.
Equals
(
"abc"
);
obj
.
Flags
.
Equals
(
31
);
obj
.
Flags
.
Equals
(
31
);
}
}
#endif
public
void
GuidIn_SO_24177902
()
public
void
GuidIn_SO_24177902
()
{
{
// invent and populate
// invent and populate
...
@@ -3304,7 +3448,7 @@ public void GuidIn_SO_24177902()
...
@@ -3304,7 +3448,7 @@ public void GuidIn_SO_24177902()
rows
[
1
].
i
.
Equals
(
3
);
rows
[
1
].
i
.
Equals
(
3
);
rows
[
1
].
g
.
Equals
(
c
);
rows
[
1
].
g
.
Equals
(
c
);
}
}
#if EXTERNALS
class
HazGeo
class
HazGeo
{
{
public
int
Id
{
get
;
set
;
}
public
int
Id
{
get
;
set
;
}
...
@@ -3372,7 +3516,7 @@ public class HazSqlHierarchy
...
@@ -3372,7 +3516,7 @@ public class HazSqlHierarchy
public
int
Id
{
get
;
set
;
}
public
int
Id
{
get
;
set
;
}
public
SqlHierarchyId
Path
{
get
;
set
;
}
public
SqlHierarchyId
Path
{
get
;
set
;
}
}
}
#endif
public
void
TypeBasedViaDynamic
()
public
void
TypeBasedViaDynamic
()
{
{
Type
type
=
GetSomeType
();
Type
type
=
GetSomeType
();
...
@@ -3432,7 +3576,7 @@ public class SomeType
...
@@ -3432,7 +3576,7 @@ public class SomeType
public
int
A
{
get
;
set
;
}
public
int
A
{
get
;
set
;
}
public
string
B
{
get
;
set
;
}
public
string
B
{
get
;
set
;
}
}
}
#if !DNXCORE50
class
WithInit
:
ISupportInitialize
class
WithInit
:
ISupportInitialize
{
{
public
string
Value
{
get
;
set
;
}
public
string
Value
{
get
;
set
;
}
...
@@ -3448,7 +3592,7 @@ void ISupportInitialize.EndInit()
...
@@ -3448,7 +3592,7 @@ void ISupportInitialize.EndInit()
Flags
+=
30
;
Flags
+=
30
;
}
}
}
}
#endif
public
void
SO24607639_NullableBools
()
public
void
SO24607639_NullableBools
()
{
{
var
obj
=
connection
.
Query
<
HazBools
>(
var
obj
=
connection
.
Query
<
HazBools
>(
...
@@ -3482,7 +3626,9 @@ public void SO24605346_ProcsAndStrings()
...
@@ -3482,7 +3626,9 @@ public void SO24605346_ProcsAndStrings()
class
PracticeRebateOrders
class
PracticeRebateOrders
{
{
public
string
fTaxInvoiceNumber
;
public
string
fTaxInvoiceNumber
;
#if EXTERNALS
[
System
.
Xml
.
Serialization
.
XmlElementAttribute
(
Form
=
System
.
Xml
.
Schema
.
XmlSchemaForm
.
Unqualified
)]
[
System
.
Xml
.
Serialization
.
XmlElementAttribute
(
Form
=
System
.
Xml
.
Schema
.
XmlSchemaForm
.
Unqualified
)]
#endif
public
string
TaxInvoiceNumber
{
get
{
return
fTaxInvoiceNumber
;
}
set
{
fTaxInvoiceNumber
=
value
;
}
}
public
string
TaxInvoiceNumber
{
get
{
return
fTaxInvoiceNumber
;
}
set
{
fTaxInvoiceNumber
=
value
;
}
}
}
}
...
@@ -3498,7 +3644,7 @@ public override RatingValue Parse(object value)
...
@@ -3498,7 +3644,7 @@ public override RatingValue Parse(object value)
throw
new
FormatException
(
"Invalid conversion to RatingValue"
);
throw
new
FormatException
(
"Invalid conversion to RatingValue"
);
}
}
public
override
void
SetValue
(
System
.
Data
.
IDbDataParameter
parameter
,
RatingValue
value
)
public
override
void
SetValue
(
IDbDataParameter
parameter
,
RatingValue
value
)
{
{
// ... null, range checks etc ...
// ... null, range checks etc ...
parameter
.
DbType
=
System
.
Data
.
DbType
.
Int32
;
parameter
.
DbType
=
System
.
Data
.
DbType
.
Int32
;
...
@@ -3585,10 +3731,12 @@ public void Issue22_ExecuteScalar()
...
@@ -3585,10 +3731,12 @@ public void Issue22_ExecuteScalar()
int
?
k
=
connection
.
ExecuteScalar
<
int
?>(
"select @i"
,
new
{
i
=
default
(
int
?)
});
int
?
k
=
connection
.
ExecuteScalar
<
int
?>(
"select @i"
,
new
{
i
=
default
(
int
?)
});
k
.
IsNull
();
k
.
IsNull
();
#if EXTERNALS
Dapper
.
EntityFramework
.
Handlers
.
Register
();
Dapper
.
EntityFramework
.
Handlers
.
Register
();
var
geo
=
DbGeography
.
LineFromText
(
"LINESTRING(-122.360 47.656, -122.343 47.656 )"
,
4326
);
var
geo
=
DbGeography
.
LineFromText
(
"LINESTRING(-122.360 47.656, -122.343 47.656 )"
,
4326
);
var
geo2
=
connection
.
ExecuteScalar
<
DbGeography
>(
"select @geo"
,
new
{
geo
});
var
geo2
=
connection
.
ExecuteScalar
<
DbGeography
>(
"select @geo"
,
new
{
geo
});
geo2
.
IsNotNull
();
geo2
.
IsNotNull
();
#endif
}
}
public
void
Issue142_FailsNamedStatus
()
public
void
Issue142_FailsNamedStatus
()
...
@@ -3974,7 +4122,7 @@ public void Issue178_SqlServer()
...
@@ -3974,7 +4122,7 @@ public void Issue178_SqlServer()
Assert
.
IsFalse
(
reader2
.
NextResult
());
Assert
.
IsFalse
(
reader2
.
NextResult
());
}
}
}
}
#if EXTERNALS
public
void
Issue178_Firebird
()
// we expect this to fail due to a bug in Firebird; a PR to fix it has been submitted
public
void
Issue178_Firebird
()
// we expect this to fail due to a bug in Firebird; a PR to fix it has been submitted
{
{
var
cs
=
@"initial catalog=localhost:database;user id=SYSDBA;password=masterkey"
;
var
cs
=
@"initial catalog=localhost:database;user id=SYSDBA;password=masterkey"
;
...
@@ -4019,6 +4167,7 @@ public void PseudoPositionalParameters_Simple()
...
@@ -4019,6 +4167,7 @@ public void PseudoPositionalParameters_Simple()
value
.
IsEqualTo
(
9
);
value
.
IsEqualTo
(
9
);
}
}
}
}
public
void
PseudoPositionalParameters_Dynamic
()
public
void
PseudoPositionalParameters_Dynamic
()
{
{
using
(
var
connection
=
ConnectViaOledb
())
using
(
var
connection
=
ConnectViaOledb
())
...
@@ -4032,6 +4181,7 @@ public void PseudoPositionalParameters_Dynamic()
...
@@ -4032,6 +4181,7 @@ public void PseudoPositionalParameters_Dynamic()
value
.
IsEqualTo
(
9
);
value
.
IsEqualTo
(
9
);
}
}
}
}
public
void
PseudoPositionalParameters_ReusedParameter
()
public
void
PseudoPositionalParameters_ReusedParameter
()
{
{
using
(
var
connection
=
ConnectViaOledb
())
using
(
var
connection
=
ConnectViaOledb
())
...
@@ -4077,7 +4227,7 @@ public void PseudoPositionalParameters_ExecMulti()
...
@@ -4077,7 +4227,7 @@ public void PseudoPositionalParameters_ExecMulti()
sum
.
IsEqualTo
(
10
);
sum
.
IsEqualTo
(
10
);
}
}
}
}
#endif
public
void
QueryBasicWithoutQuery
()
public
void
QueryBasicWithoutQuery
()
{
{
int
?
i
=
connection
.
Query
<
int
?>(
"print 'not a query'"
).
FirstOrDefault
();
int
?
i
=
connection
.
Query
<
int
?>(
"print 'not a query'"
).
FirstOrDefault
();
...
@@ -4213,7 +4363,9 @@ public void SO29343103_UtcDates()
...
@@ -4213,7 +4363,9 @@ public void SO29343103_UtcDates()
var
delta
=
returned
-
date
;
var
delta
=
returned
-
date
;
Assert
.
IsTrue
(
delta
.
TotalMilliseconds
>=
-
1
&&
delta
.
TotalMilliseconds
<=
1
);
Assert
.
IsTrue
(
delta
.
TotalMilliseconds
>=
-
1
&&
delta
.
TotalMilliseconds
<=
1
);
}
}
#if DNXCORE50
[
FrameworkFail
(
"https://github.com/dotnet/corefx/issues/1612"
)]
#endif
public
void
Issue261_Decimals
()
public
void
Issue261_Decimals
()
{
{
var
parameters
=
new
DynamicParameters
();
var
parameters
=
new
DynamicParameters
();
...
@@ -4223,13 +4375,69 @@ public void Issue261_Decimals()
...
@@ -4223,13 +4375,69 @@ public void Issue261_Decimals()
var
c
=
parameters
.
Get
<
Decimal
>(
"c"
);
var
c
=
parameters
.
Get
<
Decimal
>(
"c"
);
c
.
IsEqualTo
(
11.884
M
);
c
.
IsEqualTo
(
11.884
M
);
}
}
#if DNXCORE50
[
FrameworkFail
(
"https://github.com/dotnet/corefx/issues/1612"
)]
#endif
public
void
Issue261_Decimals_ADONET_SetViaBaseClass
()
{
Issue261_Decimals_ADONET
(
true
);
}
public
void
Issue261_Decimals_ADONET_SetViaConcreteClass
()
{
Issue261_Decimals_ADONET
(
false
);
}
private
void
Issue261_Decimals_ADONET
(
bool
setPrecisionScaleViaAbstractApi
)
{
try
{
using
(
var
cmd
=
connection
.
CreateCommand
())
{
cmd
.
CommandText
=
"create proc #Issue261Direct @c decimal(10,5) OUTPUT as begin set @c=11.884 end"
;
cmd
.
ExecuteNonQuery
();
}
}
catch
{
/* we don't care that it already exists */
}
using
(
var
cmd
=
connection
.
CreateCommand
())
{
cmd
.
CommandType
=
CommandType
.
StoredProcedure
;
cmd
.
CommandText
=
"#Issue261Direct"
;
var
c
=
cmd
.
CreateParameter
();
c
.
ParameterName
=
"c"
;
c
.
Direction
=
ParameterDirection
.
Output
;
c
.
Value
=
DBNull
.
Value
;
c
.
DbType
=
DbType
.
Decimal
;
if
(
setPrecisionScaleViaAbstractApi
)
{
#if DNXCORE50
DbParameter
baseParam
=
c
;
#else
IDbDataParameter
baseParam
=
c
;
#endif
baseParam
.
Precision
=
10
;
baseParam
.
Scale
=
5
;
}
else
{
c
.
Precision
=
10
;
c
.
Scale
=
5
;
}
cmd
.
Parameters
.
Add
(
c
);
cmd
.
ExecuteNonQuery
();
decimal
value
=
(
decimal
)
c
.
Value
;
value
.
IsEqualTo
(
11.884
M
);
}
}
public
void
BasicDecimals
()
public
void
BasicDecimals
()
{
{
var
c
=
connection
.
Query
<
decimal
>(
"select @c"
,
new
{
c
=
11.884
M
}).
Single
();
var
c
=
connection
.
Query
<
decimal
>(
"select @c"
,
new
{
c
=
11.884
M
}).
Single
();
c
.
IsEqualTo
(
11.884
M
);
c
.
IsEqualTo
(
11.884
M
);
}
}
[
SkipTest
]
public
void
Issue263_Timeout
()
public
void
Issue263_Timeout
()
{
{
var
watch
=
Stopwatch
.
StartNew
();
var
watch
=
Stopwatch
.
StartNew
();
...
@@ -4239,7 +4447,7 @@ public void Issue263_Timeout()
...
@@ -4239,7 +4447,7 @@ public void Issue263_Timeout()
var
minutes
=
watch
.
ElapsedMilliseconds
/
1000
/
60
;
var
minutes
=
watch
.
ElapsedMilliseconds
/
1000
/
60
;
Assert
.
IsTrue
(
minutes
>=
0.95
&&
minutes
<=
1.05
);
Assert
.
IsTrue
(
minutes
>=
0.95
&&
minutes
<=
1.05
);
}
}
#if EXTERNALS
public
void
SO29596645_TvpProperty
()
public
void
SO29596645_TvpProperty
()
{
{
try
{
connection
.
Execute
(
"CREATE TYPE SO29596645_ReminderRuleType AS TABLE (id int NOT NULL)"
);
}
try
{
connection
.
Execute
(
"CREATE TYPE SO29596645_ReminderRuleType AS TABLE (id int NOT NULL)"
);
}
...
@@ -4253,7 +4461,7 @@ public void SO29596645_TvpProperty()
...
@@ -4253,7 +4461,7 @@ public void SO29596645_TvpProperty()
val
.
IsEqualTo
(
20
);
val
.
IsEqualTo
(
20
);
}
}
#endif
public
void
Issue268_ReturnQueryMultiple
()
public
void
Issue268_ReturnQueryMultiple
()
{
{
connection
.
Execute
(
@"create proc #TestProc268 (@a int, @b int, @c int)as
connection
.
Execute
(
@"create proc #TestProc268 (@a int, @b int, @c int)as
...
@@ -4276,7 +4484,7 @@ select @b
...
@@ -4276,7 +4484,7 @@ select @b
var
retVal
=
p
.
Get
<
int
>(
"RetVal"
);
var
retVal
=
p
.
Get
<
int
>(
"RetVal"
);
retVal
.
IsEqualTo
(
3
);
retVal
.
IsEqualTo
(
3
);
}
}
#if EXTERNALS
class
SO29596645_RuleTableValuedParameters
:
Dapper
.
SqlMapper
.
IDynamicParameters
{
class
SO29596645_RuleTableValuedParameters
:
Dapper
.
SqlMapper
.
IDynamicParameters
{
private
string
parameterName
;
private
string
parameterName
;
...
@@ -4308,7 +4516,7 @@ public SO29596645_OrganisationDTO()
...
@@ -4308,7 +4516,7 @@ public SO29596645_OrganisationDTO()
Rules
=
new
SO29596645_RuleTableValuedParameters
(
"@Rules"
);
Rules
=
new
SO29596645_RuleTableValuedParameters
(
"@Rules"
);
}
}
}
}
#endif
#if POSTGRESQL
#if POSTGRESQL
class
Cat
class
Cat
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment