@@ -8080,9 +8080,12 @@ namespace ProviderImplementation.ProvidedTypes
8080
8080
8081
8081
8082
8082
8083
- type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string) =
8083
+ type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string, customAttributesData ) =
8084
8084
8085
8085
inherit Assembly()
8086
+
8087
+ let customAttributesImpl = CustomAttributesImpl(isTgt, customAttributesData)
8088
+
8086
8089
let theTypes = ResizeArray<ProvidedTypeDefinition[] * string list option>()
8087
8090
8088
8091
let addTypes (ptds:ProvidedTypeDefinition[], enclosingTypeNames: string list option) =
@@ -8093,6 +8096,8 @@ namespace ProviderImplementation.ProvidedTypes
8093
8096
theTypes.Add (ptds, enclosingTypeNames)
8094
8097
8095
8098
let theTypesArray = lazy (theTypes.ToArray() |> Array.collect (function (ptds, None) -> Array.map (fun ptd -> (ptd :> Type)) ptds | _ -> [| |]))
8099
+
8100
+ member __.AddCustomAttribute(attribute) = customAttributesImpl.AddCustomAttribute(attribute)
8096
8101
8097
8102
override __.GetReferencedAssemblies() = [| |] //notRequired x "GetReferencedAssemblies" (assemblyName.ToString())
8098
8103
@@ -8128,7 +8133,7 @@ namespace ProviderImplementation.ProvidedTypes
8128
8133
ProvidedAssembly(AssemblyName(simpleName), assemblyFileName)
8129
8134
8130
8135
new (assemblyName, assemblyFileName) =
8131
- ProvidedAssembly(false, assemblyName, assemblyFileName)
8136
+ ProvidedAssembly(false, assemblyName, assemblyFileName, K [||] )
8132
8137
8133
8138
member __.BelongsToTargetModel = isTgt
8134
8139
@@ -8142,6 +8147,8 @@ namespace ProviderImplementation.ProvidedTypes
8142
8147
addTypes (types, enclosingGeneratedTypeNames)
8143
8148
8144
8149
member __.GetTheTypes () = theTypes.ToArray()
8150
+
8151
+ override __.GetCustomAttributesData() = customAttributesImpl.GetCustomAttributesData()
8145
8152
8146
8153
//====================================================================================================
8147
8154
// ProvidedTypesContext
@@ -9236,9 +9243,9 @@ namespace ProviderImplementation.ProvidedTypes
9236
9243
match assemblyTableFwd.TryGetValue(assembly) with
9237
9244
| true, newT -> newT
9238
9245
| false, _ ->
9239
- let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location)
9246
+ let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location, K(convCustomAttributesDataToTgt(assembly.GetCustomAttributesData())))
9240
9247
9241
- for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
9248
+ for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
9242
9249
let typesT = Array.map convProvidedTypeDefToTgt types
9243
9250
tgtAssembly.AddTheTypes (typesT, enclosingGeneratedTypeNames)
9244
9251
@@ -13673,14 +13680,15 @@ namespace ProviderImplementation.ProvidedTypes
13673
13680
}
13674
13681
override __.ToString() = "builder for " + moduleName
13675
13682
13676
- type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg) =
13683
+ type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg, attrs : ILCustomAttribute seq) =
13684
+ let cattrs = ResizeArray<ILCustomAttribute>(attrs)
13677
13685
let manifest =
13678
13686
{ Name = assemblyName.Name
13679
13687
AuxModuleHashAlgorithm = 0x8004 // SHA1
13680
13688
PublicKey = UNone
13681
13689
Version = UNone
13682
13690
Locale = UNone
13683
- CustomAttrs = emptyILCustomAttrs
13691
+ CustomAttrs = { new ILCustomAttrs with member __.Entries = cattrs.ToArray() }
13684
13692
//AssemblyLongevity=ILAssemblyLongevity.Unspecified
13685
13693
DisableJitOptimizations = false
13686
13694
JitTracking = true
@@ -14286,7 +14294,11 @@ namespace ProviderImplementation.ProvidedTypes
14286
14294
let ilg = context.ILGlobals
14287
14295
let assemblyName = targetAssembly.GetName()
14288
14296
let assemblyFileName = targetAssembly.Location
14289
- let assemblyBuilder = ILAssemblyBuilder(assemblyName, assemblyFileName, ilg)
14297
+ let assemblyBuilder =
14298
+ let attrs = targetAssembly.GetCustomAttributesData()
14299
+ let cattrs = ResizeArray()
14300
+ defineCustomAttrs cattrs.Add attrs
14301
+ ILAssemblyBuilder(assemblyName, assemblyFileName, ilg, cattrs)
14290
14302
let assemblyMainModule = assemblyBuilder.MainModule
14291
14303
14292
14304
// Set the Assembly on the type definitions
0 commit comments