@@ -8082,9 +8082,12 @@ namespace ProviderImplementation.ProvidedTypes
8082
8082
8083
8083
8084
8084
8085
- type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string) =
8085
+ type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string, customAttributesData ) =
8086
8086
8087
8087
inherit Assembly()
8088
+
8089
+ let customAttributesImpl = CustomAttributesImpl(isTgt, customAttributesData)
8090
+
8088
8091
let theTypes = ResizeArray<ProvidedTypeDefinition[] * string list option>()
8089
8092
8090
8093
let addTypes (ptds:ProvidedTypeDefinition[], enclosingTypeNames: string list option) =
@@ -8095,6 +8098,8 @@ namespace ProviderImplementation.ProvidedTypes
8095
8098
theTypes.Add (ptds, enclosingTypeNames)
8096
8099
8097
8100
let theTypesArray = lazy (theTypes.ToArray() |> Array.collect (function (ptds, None) -> Array.map (fun ptd -> (ptd :> Type)) ptds | _ -> [| |]))
8101
+
8102
+ member __.AddCustomAttribute(attribute) = customAttributesImpl.AddCustomAttribute(attribute)
8098
8103
8099
8104
override __.GetReferencedAssemblies() = [| |] //notRequired x "GetReferencedAssemblies" (assemblyName.ToString())
8100
8105
@@ -8130,7 +8135,7 @@ namespace ProviderImplementation.ProvidedTypes
8130
8135
ProvidedAssembly(AssemblyName(simpleName), assemblyFileName)
8131
8136
8132
8137
new (assemblyName, assemblyFileName) =
8133
- ProvidedAssembly(false, assemblyName, assemblyFileName)
8138
+ ProvidedAssembly(false, assemblyName, assemblyFileName, K [||] )
8134
8139
8135
8140
member __.BelongsToTargetModel = isTgt
8136
8141
@@ -8144,6 +8149,8 @@ namespace ProviderImplementation.ProvidedTypes
8144
8149
addTypes (types, enclosingGeneratedTypeNames)
8145
8150
8146
8151
member __.GetTheTypes () = theTypes.ToArray()
8152
+
8153
+ override __.GetCustomAttributesData() = customAttributesImpl.GetCustomAttributesData()
8147
8154
8148
8155
//====================================================================================================
8149
8156
// ProvidedTypesContext
@@ -9238,9 +9245,9 @@ namespace ProviderImplementation.ProvidedTypes
9238
9245
match assemblyTableFwd.TryGetValue(assembly) with
9239
9246
| true, newT -> newT
9240
9247
| false, _ ->
9241
- let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location)
9248
+ let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location, K(convCustomAttributesDataToTgt(assembly.GetCustomAttributesData())))
9242
9249
9243
- for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
9250
+ for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
9244
9251
let typesT = Array.map convProvidedTypeDefToTgt types
9245
9252
tgtAssembly.AddTheTypes (typesT, enclosingGeneratedTypeNames)
9246
9253
@@ -13675,14 +13682,15 @@ namespace ProviderImplementation.ProvidedTypes
13675
13682
}
13676
13683
override __.ToString() = "builder for " + moduleName
13677
13684
13678
- type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg) =
13685
+ type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg, attrs : ILCustomAttribute seq) =
13686
+ let cattrs = ResizeArray<ILCustomAttribute>(attrs)
13679
13687
let manifest =
13680
13688
{ Name = assemblyName.Name
13681
13689
AuxModuleHashAlgorithm = 0x8004 // SHA1
13682
13690
PublicKey = UNone
13683
13691
Version = UNone
13684
13692
Locale = UNone
13685
- CustomAttrs = emptyILCustomAttrs
13693
+ CustomAttrs = { new ILCustomAttrs with member __.Entries = cattrs.ToArray() }
13686
13694
//AssemblyLongevity=ILAssemblyLongevity.Unspecified
13687
13695
DisableJitOptimizations = false
13688
13696
JitTracking = true
@@ -14909,7 +14917,11 @@ namespace ProviderImplementation.ProvidedTypes
14909
14917
let ilg = context.ILGlobals
14910
14918
let assemblyName = targetAssembly.GetName()
14911
14919
let assemblyFileName = targetAssembly.Location
14912
- let assemblyBuilder = ILAssemblyBuilder(assemblyName, assemblyFileName, ilg)
14920
+ let assemblyBuilder =
14921
+ let attrs = targetAssembly.GetCustomAttributesData()
14922
+ let cattrs = ResizeArray()
14923
+ defineCustomAttrs cattrs.Add attrs
14924
+ ILAssemblyBuilder(assemblyName, assemblyFileName, ilg, cattrs)
14913
14925
let assemblyMainModule = assemblyBuilder.MainModule
14914
14926
14915
14927
// Set the Assembly on the type definitions
0 commit comments