77using System . Diagnostics ;
88using System . IO ;
99using System . Linq ;
10+ using System . Linq . Expressions ;
1011using System . Net ;
1112using System . Reflection ;
1213#if ! NET462
@@ -44,7 +45,18 @@ public string GetSourceCodeWithIncludesExecuted()
4445 sourceCode ;
4546 }
4647
48+
4749#if NET462
50+ public static IEnumerable < MetadataReference > GetDefaultMetadataReferences ( )
51+ {
52+ yield return MetadataReference . CreateFromFile ( typeof ( Enumerable ) . GetTypeInfo ( ) . Assembly . Location ) ;
53+ yield return MetadataReference . CreateFromFile ( typeof ( System . Xml . Linq . XElement ) . GetTypeInfo ( ) . Assembly . Location ) ;
54+ yield return MetadataReference . CreateFromFile ( typeof ( System . IO . File ) . GetTypeInfo ( ) . Assembly . Location ) ;
55+ yield return MetadataReference . CreateFromFile ( typeof ( System . Diagnostics . Debug ) . GetTypeInfo ( ) . Assembly . Location ) ;
56+ yield return MetadataReference . CreateFromFile ( typeof ( Newtonsoft . Json . JsonConvert ) . GetTypeInfo ( ) . Assembly . Location ) ;
57+ yield return MetadataReference . CreateFromFile ( typeof ( Microsoft . CSharp . RuntimeBinder . RuntimeBinderException ) . GetTypeInfo ( ) . Assembly . Location ) ;
58+ }
59+
4860 public override async Task < string > GetBodyAsync ( RequestInfo requestInfo )
4961 {
5062 Debug . Assert ( requestInfo != null ) ;
@@ -53,11 +65,7 @@ public override async Task<string> GetBodyAsync(RequestInfo requestInfo)
5365 {
5466 //TODO: Debug logging of referenced assemblies
5567 var scriptOptions = ScriptOptions . Default . WithReferences (
56- MetadataReference . CreateFromFile ( typeof ( Enumerable ) . GetTypeInfo ( ) . Assembly . Location ) , // System.Linq
57- MetadataReference . CreateFromFile ( typeof ( System . Xml . Linq . XElement ) . GetTypeInfo ( ) . Assembly . Location ) , // System.Xml.Linq
58- MetadataReference . CreateFromFile ( typeof ( System . IO . File ) . GetTypeInfo ( ) . Assembly . Location ) ,
59- MetadataReference . CreateFromFile ( typeof ( System . Diagnostics . Debug ) . GetTypeInfo ( ) . Assembly . Location ) ,
60- MetadataReference . CreateFromFile ( typeof ( Newtonsoft . Json . JsonConvert ) . GetTypeInfo ( ) . Assembly . Location )
68+ GetDefaultMetadataReferences ( ) . ToArray ( )
6169 ) ;
6270
6371 var script = CSharpScript . Create < string > (
@@ -88,19 +96,28 @@ public override async Task<string> GetBodyAsync(RequestInfo requestInfo)
8896 return await task ;
8997 }
9098#else
99+ public static IEnumerable < MetadataReference > GetDefaultMetadataReferences ( )
100+ {
101+ yield return MetadataReference . CreateFromFile ( typeof ( Enumerable ) . GetTypeInfo ( ) . Assembly . Location ) ;
102+ yield return MetadataReference . CreateFromFile ( typeof ( System . Xml . Linq . XElement ) . GetTypeInfo ( ) . Assembly . Location ) ;
103+ yield return MetadataReference . CreateFromFile ( typeof ( System . IO . File ) . GetTypeInfo ( ) . Assembly . Location ) ;
104+ yield return MetadataReference . CreateFromFile ( typeof ( System . Diagnostics . Debug ) . GetTypeInfo ( ) . Assembly . Location ) ;
105+ yield return MetadataReference . CreateFromFile ( typeof ( System . Text . RegularExpressions . Regex ) . GetTypeInfo ( ) . Assembly . Location ) ;
106+ yield return MetadataReference . CreateFromFile ( typeof ( Newtonsoft . Json . JsonConvert ) . GetTypeInfo ( ) . Assembly . Location ) ;
107+ yield return MetadataReference . CreateFromFile ( typeof ( Queue < > ) . GetTypeInfo ( ) . Assembly . Location ) ;
108+ yield return MetadataReference . CreateFromFile ( typeof ( System . Dynamic . ExpandoObject ) . GetTypeInfo ( ) . Assembly . Location ) ;
109+ yield return MetadataReference . CreateFromFile ( typeof ( Microsoft . CSharp . RuntimeBinder . RuntimeBinderException ) . GetTypeInfo ( ) . Assembly . Location ) ;
110+ yield return MetadataReference . CreateFromFile ( typeof ( ExpressionType ) . GetTypeInfo ( ) . Assembly . Location ) ;
111+
112+ }
113+
91114 public override async Task < string > GetBodyAsync ( RequestInfo requestInfo )
92115 {
93116 //TODO: Only create script object if source has changed
94117 Debug . Assert ( requestInfo != null ) ;
95118
96119 var scriptOptions = ScriptOptions . Default . WithReferences (
97- MetadataReference . CreateFromFile ( typeof ( Enumerable ) . GetTypeInfo ( ) . Assembly . Location ) , // System.Linq
98- MetadataReference . CreateFromFile ( typeof ( System . Xml . Linq . XElement ) . GetTypeInfo ( ) . Assembly . Location ) , // System.Xml.Linq
99- MetadataReference . CreateFromFile ( typeof ( System . IO . File ) . GetTypeInfo ( ) . Assembly . Location ) ,
100- MetadataReference . CreateFromFile ( typeof ( System . Diagnostics . Debug ) . GetTypeInfo ( ) . Assembly . Location ) ,
101- MetadataReference . CreateFromFile ( typeof ( System . Text . RegularExpressions . Regex ) . GetTypeInfo ( ) . Assembly . Location ) ,
102- MetadataReference . CreateFromFile ( typeof ( Newtonsoft . Json . JsonConvert ) . GetTypeInfo ( ) . Assembly . Location ) ,
103- MetadataReference . CreateFromFile ( typeof ( Queue < > ) . GetTypeInfo ( ) . Assembly . Location )
120+ GetDefaultMetadataReferences ( ) . ToArray ( )
104121 ) ;
105122
106123 var script = CSharpScript . Create < string > (
0 commit comments