Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ExplicitScopeAttribute.cs « Reflection « Internal « src « System.Private.CoreLib « src - github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: ef0aa659754108093fb570515fae37057b8eddad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System;

namespace Internal.Reflection
{
    //
    // This attribute is used to affect the generation of Project N metadata. When applied to a class,
    // it will cause the metadata generator to emit the type into a user-specified scope (creating it if necessary.)
    //
    // For Fx, One use of this is to allow us to generate metadata for non-public types for private use by other FX components.
    // By throwing it into a private scope that Reflection knows about, we can prevent Reflection's own consumers
    // from seeing the internal type.
    // For FX, it doesn't use(or reference) this attribute in this contact. Each FX assembly via a transform will inject a definition of this attribute and reference that one

    // For Interop, We use it to pass native winmd winrt type's winmd infomation to CreateMetadata Transform, so it knows where this 
    // native winmd winrt type originally comes from.    
    // For Interop, it will use this attribute in this contract during Mcg Transform.
    [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Delegate, Inherited = false)]
    public sealed class ExplicitScopeAttribute : Attribute
    {
        public ExplicitScopeAttribute(string assemblyIdentity)
        {
        }
    }
}