Advertisement
Guest User

HELPERS

a guest
Jul 12th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.59 KB | None | 0 0
  1. (******************* TYPE PROVIDER'S HELPERS *******************)
  2.  
  3. // CREATING TYPES, NESTED TYPES, METHODS, PROPERTIES, CONSTRUCTORS
  4. let internal createProvidedType assembly name =
  5.     ProvidedTypeDefinition(assembly, ns, name, Some baseType, IsErased=false)
  6.  
  7. let internal createProvidedIncludedType name =
  8.     ProvidedTypeDefinition(name,Some baseType, IsErased=false)
  9.  
  10. let internal createMethodType name param =
  11.     ProvidedMethod( name, param, typeof<string>, InvokeCode = (fun args -> <@@ name @@> ))
  12.  
  13. let internal createPropertyType name =
  14.     ProvidedProperty( name , typeof<string>, IsStatic = true, GetterCode = (fun args -> <@@ name @@>) )
  15.  
  16. let internal createCstor param =
  17.     ProvidedConstructor( parameters = param, InvokeCode = (fun args -> <@@ () @@>) )
  18.  
  19.  
  20. // ADDING TYPES, NESTED TYPES, METHODS, PROPERTIES, CONSTRUCTORS TO THE ASSEMBLY AND AS MEMBERS OF THE TYPE PROVIDER
  21. let internal addProvidedTypeToAssembly (providedType:ProvidedTypeDefinition)=
  22.     asm.AddTypes([providedType])
  23.     providedType
  24.  
  25. let internal addIncludedTypeToProvidedType nestedTypeToAdd (providedType:ProvidedTypeDefinition) =
  26.     providedType.AddMembers([nestedTypeToAdd])
  27.     providedType
  28.  
  29. let internal addMethod methodType (providedType:ProvidedTypeDefinition) =
  30.     providedType.AddMember methodType
  31.     providedType    
  32.  
  33. let internal addProperty propertyToAdd (providedType:ProvidedTypeDefinition) =
  34.     providedType.AddMember(propertyToAdd)
  35.     providedType
  36.  
  37. let internal addCstor cstorToAdd (providedType:ProvidedTypeDefinition) =
  38.     providedType.AddMember(cstorToAdd)
  39.     providedType
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement