From 3b9b13621d831292557e846d1b850aa2a8b92a04 Mon Sep 17 00:00:00 2001 From: Dilip Ojha Date: Fri, 14 Jun 2019 16:27:45 -0700 Subject: [PATCH] Moving System.Security.Permissions Types from WPF * moved wpf types * added new types to ref * addressed comments * addressing comments * addressed more comments * addressed comment * updated ref * added typeforwardedfrom and addressed comment * updated publickeytoken * added tests, addressed comments * added mediapermissionattribute test Commit migrated from https://github.com/dotnet/corefx/commit/df5bb8e4509ca5166f83abbd4cfe4a063433fee7 --- .../ref/System.Security.Permissions.cs | 106 +++++++++++++++++++++ .../ref/System.Security.Permissions.csproj | 4 +- .../src/System.Security.Permissions.csproj | 8 +- .../System/Security/Permissions/MediaPermission.cs | 58 +++++++++++ .../Security/Permissions/WebBrowserPermission.cs | 34 +++++++ .../src/System/Xaml/Permissions/XamlAccessLevel.cs | 51 ++++++++++ .../System/Xaml/Permissions/XamlLoadPermission.cs | 32 +++++++ .../tests/PermissionTests.cs | 71 ++++++++++++++ .../tests/System.Security.Permissions.Tests.csproj | 3 +- .../tests/XamlAccessLevelTests.cs | 25 +++++ 10 files changed, 389 insertions(+), 3 deletions(-) create mode 100644 src/libraries/System.Security.Permissions/src/System/Security/Permissions/MediaPermission.cs create mode 100644 src/libraries/System.Security.Permissions/src/System/Security/Permissions/WebBrowserPermission.cs create mode 100644 src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlAccessLevel.cs create mode 100644 src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs create mode 100644 src/libraries/System.Security.Permissions/tests/XamlAccessLevelTests.cs diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs index d2a496c..f38b82c 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.cs @@ -1040,6 +1040,55 @@ namespace System.Security.Permissions ChangeAcl = 8192, AllFlags = 13111, } + public sealed partial class MediaPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission + { + public MediaPermission() { } + public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio) { } + public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio, System.Security.Permissions.MediaPermissionVideo permissionVideo, System.Security.Permissions.MediaPermissionImage permissionImage) { } + public MediaPermission(System.Security.Permissions.MediaPermissionImage permissionImage) { } + public MediaPermission(System.Security.Permissions.MediaPermissionVideo permissionVideo) { } + public MediaPermission(System.Security.Permissions.PermissionState state) { } + public System.Security.Permissions.MediaPermissionAudio Audio { get { throw null; } } + public System.Security.Permissions.MediaPermissionImage Image { get { throw null; } } + public System.Security.Permissions.MediaPermissionVideo Video { get { throw null; } } + public override System.Security.IPermission Copy() { throw null; } + public override void FromXml(System.Security.SecurityElement securityElement) { } + public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; } + public override bool IsSubsetOf(System.Security.IPermission target) { throw null; } + public bool IsUnrestricted() { throw null; } + public override System.Security.SecurityElement ToXml() { throw null; } + public override System.Security.IPermission Union(System.Security.IPermission target) { throw null; } + } + [System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple = true, Inherited = false)] + public sealed partial class MediaPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute + { + public MediaPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) { } + public System.Security.Permissions.MediaPermissionAudio Audio { get { throw null; } set { } } + public System.Security.Permissions.MediaPermissionImage Image { get { throw null; } set { } } + public System.Security.Permissions.MediaPermissionVideo Video { get { throw null; } set { } } + public override System.Security.IPermission CreatePermission() { throw null; } + } + public enum MediaPermissionAudio + { + NoAudio = 0, + SiteOfOriginAudio = 1, + SafeAudio = 2, + AllAudio = 3, + } + public enum MediaPermissionImage + { + NoImage = 0, + SiteOfOriginImage = 1, + SafeImage = 2, + AllImage = 3, + } + public enum MediaPermissionVideo + { + NoVideo = 0, + SiteOfOriginVideo = 1, + SafeVideo = 2, + AllVideo = 3, + } [System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)] public sealed partial class PermissionSetAttribute : System.Security.Permissions.CodeAccessSecurityAttribute { @@ -1397,6 +1446,33 @@ namespace System.Security.Permissions public string Url { get { throw null; } set { } } public override System.Security.IPermission CreatePermission() { throw null; } } + public sealed partial class WebBrowserPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission + { + public WebBrowserPermission() { } + public WebBrowserPermission(System.Security.Permissions.PermissionState state) { } + public WebBrowserPermission(System.Security.Permissions.WebBrowserPermissionLevel webBrowserPermissionLevel) { } + public System.Security.Permissions.WebBrowserPermissionLevel Level { get { throw null; } set { } } + public override System.Security.IPermission Copy() { throw null; } + public override void FromXml(System.Security.SecurityElement securityElement) { } + public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; } + public override bool IsSubsetOf(System.Security.IPermission target) { throw null; } + public bool IsUnrestricted() { throw null; } + public override System.Security.SecurityElement ToXml() { throw null; } + public override System.Security.IPermission Union(System.Security.IPermission target) { throw null; } + } + [System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple = true, Inherited = false)] + public sealed partial class WebBrowserPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute + { + public WebBrowserPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) { } + public System.Security.Permissions.WebBrowserPermissionLevel Level { get { throw null; } set { } } + public override System.Security.IPermission CreatePermission() { throw null; } + } + public enum WebBrowserPermissionLevel + { + None = 0, + Safe = 1, + Unrestricted = 2, + } public sealed partial class ZoneIdentityPermission : System.Security.CodeAccessPermission { public ZoneIdentityPermission(System.Security.Permissions.PermissionState state) { } @@ -2015,3 +2091,33 @@ namespace System.Web Unrestricted = 600, } } +namespace System.Xaml.Permissions +{ + public partial class XamlAccessLevel + { + internal XamlAccessLevel() { } + public System.Reflection.AssemblyName AssemblyAccessToAssemblyName { get { throw null; } } + public string PrivateAccessToTypeName { get { throw null; } } + public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.Assembly assembly) { throw null; } + public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.AssemblyName assemblyName) { throw null; } + public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(string assemblyQualifiedTypeName) { throw null; } + public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(System.Type type) { throw null; } + } + public sealed partial class XamlLoadPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission + { + public XamlLoadPermission(System.Collections.Generic.IEnumerable allowedAccess) { } + public XamlLoadPermission(System.Security.Permissions.PermissionState state) { } + public XamlLoadPermission(System.Xaml.Permissions.XamlAccessLevel allowedAccess) { } + public System.Collections.Generic.IList AllowedAccess { get { throw null; } } + public override System.Security.IPermission Copy() { throw null; } + public override bool Equals(object obj) { throw null; } + public override void FromXml(System.Security.SecurityElement elem) { } + public override int GetHashCode() { throw null; } + public bool Includes(System.Xaml.Permissions.XamlAccessLevel requestedAccess) { throw null; } + public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; } + public override bool IsSubsetOf(System.Security.IPermission target) { throw null; } + public bool IsUnrestricted() { throw null; } + public override System.Security.SecurityElement ToXml() { throw null; } + public override System.Security.IPermission Union(System.Security.IPermission other) { throw null; } + } +} diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj index b69ad78..d2b4c99 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj @@ -20,6 +20,8 @@ + + @@ -37,4 +39,4 @@ - \ No newline at end of file + diff --git a/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj b/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj index f2eaa03..9d3ca6e 100644 --- a/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj +++ b/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj @@ -89,6 +89,7 @@ + @@ -120,6 +121,7 @@ + @@ -176,6 +178,8 @@ + + @@ -201,6 +205,8 @@ + + @@ -222,4 +228,4 @@ - \ No newline at end of file + diff --git a/src/libraries/System.Security.Permissions/src/System/Security/Permissions/MediaPermission.cs b/src/libraries/System.Security.Permissions/src/System/Security/Permissions/MediaPermission.cs new file mode 100644 index 0000000..e10cbb53 --- /dev/null +++ b/src/libraries/System.Security.Permissions/src/System/Security/Permissions/MediaPermission.cs @@ -0,0 +1,58 @@ +// 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. +namespace System.Security.Permissions +{ + public enum MediaPermissionAudio + { + NoAudio, + SiteOfOriginAudio, + SafeAudio, + AllAudio + } + public enum MediaPermissionVideo + { + NoVideo, + SiteOfOriginVideo, + SafeVideo, + AllVideo, + } + public enum MediaPermissionImage + { + NoImage, + SiteOfOriginImage, + SafeImage, + AllImage, + } + sealed public class MediaPermission : CodeAccessPermission, IUnrestrictedPermission + { + public MediaPermission() { } + public MediaPermission(PermissionState state) { } + public MediaPermission(MediaPermissionAudio permissionAudio) { } + public MediaPermission(MediaPermissionVideo permissionVideo) { } + public MediaPermission(MediaPermissionImage permissionImage) { } + public MediaPermission(MediaPermissionAudio permissionAudio, + MediaPermissionVideo permissionVideo, + MediaPermissionImage permissionImage) + { } + public bool IsUnrestricted() { return true; } + public override bool IsSubsetOf(IPermission target) { return true; } + public override IPermission Intersect(IPermission target) { return new MediaPermission(); } + public override IPermission Union(IPermission target) { return new MediaPermission(); } + public override IPermission Copy() { return new MediaPermission(); } + public override SecurityElement ToXml() { return default(SecurityElement); } + public override void FromXml(SecurityElement securityElement) { } + public MediaPermissionAudio Audio { get { return MediaPermissionAudio.AllAudio; } } + public MediaPermissionVideo Video { get { return MediaPermissionVideo.AllVideo; } } + public MediaPermissionImage Image { get { return MediaPermissionImage.AllImage; } } + } + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)] + sealed public class MediaPermissionAttribute : CodeAccessSecurityAttribute + { + public MediaPermissionAttribute(SecurityAction action) : base(action) { } + public override IPermission CreatePermission() { return new MediaPermission(); } + public MediaPermissionAudio Audio { get { return MediaPermissionAudio.AllAudio; } set { } } + public MediaPermissionVideo Video { get { return MediaPermissionVideo.AllVideo; } set { } } + public MediaPermissionImage Image { get { return MediaPermissionImage.AllImage; } set { } } + } +} diff --git a/src/libraries/System.Security.Permissions/src/System/Security/Permissions/WebBrowserPermission.cs b/src/libraries/System.Security.Permissions/src/System/Security/Permissions/WebBrowserPermission.cs new file mode 100644 index 0000000..2db3f62 --- /dev/null +++ b/src/libraries/System.Security.Permissions/src/System/Security/Permissions/WebBrowserPermission.cs @@ -0,0 +1,34 @@ +// 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. +namespace System.Security.Permissions +{ + public enum WebBrowserPermissionLevel + { + None, + Safe, + Unrestricted + } + sealed public class WebBrowserPermission : CodeAccessPermission, IUnrestrictedPermission + { + public WebBrowserPermission() { } + public WebBrowserPermission(PermissionState state) { } + public WebBrowserPermission(WebBrowserPermissionLevel webBrowserPermissionLevel) { } + public bool IsUnrestricted() { return true; } + public override bool IsSubsetOf(IPermission target) { return true; } + public override IPermission Intersect(IPermission target) { return new WebBrowserPermission(); } + public override IPermission Union(IPermission target) { return new WebBrowserPermission(); } + public override IPermission Copy() { return new WebBrowserPermission(); } + public override SecurityElement ToXml() { return default(SecurityElement); } + public override void FromXml(SecurityElement securityElement) { } + public WebBrowserPermissionLevel Level { get { return WebBrowserPermissionLevel.Unrestricted; } set { } } + } + + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)] + sealed public class WebBrowserPermissionAttribute : CodeAccessSecurityAttribute + { + public WebBrowserPermissionAttribute(SecurityAction action) : base(action) { } + public override IPermission CreatePermission() { return new WebBrowserPermission(); } + public WebBrowserPermissionLevel Level { get { return WebBrowserPermissionLevel.Unrestricted; } set { } } + } +} diff --git a/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlAccessLevel.cs b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlAccessLevel.cs new file mode 100644 index 0000000..7bea5cf --- /dev/null +++ b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlAccessLevel.cs @@ -0,0 +1,51 @@ +// 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.Reflection; +using System.Security; + +namespace System.Xaml.Permissions +{ + public class XamlAccessLevel + { + private XamlAccessLevel(string assemblyName, string typeName) + { + AssemblyNameString = assemblyName; + PrivateAccessToTypeName = typeName; + } + + public static XamlAccessLevel AssemblyAccessTo(Assembly assembly) + { + return new XamlAccessLevel(assembly.FullName, null); + } + + public static XamlAccessLevel AssemblyAccessTo(AssemblyName assemblyName) + { + return new XamlAccessLevel(assemblyName.FullName, null); + } + + public static XamlAccessLevel PrivateAccessTo(Type type) + { + return new XamlAccessLevel(type.Assembly.FullName, type.FullName); + } + + public static XamlAccessLevel PrivateAccessTo(string assemblyQualifiedTypeName) + { + int nameBoundary = assemblyQualifiedTypeName.IndexOf(','); + string typeName = assemblyQualifiedTypeName.Substring(0, nameBoundary).Trim(); + string assemblyFullName = assemblyQualifiedTypeName.Substring(nameBoundary + 1).Trim(); + AssemblyName assemblyName = new AssemblyName(assemblyFullName); + return new XamlAccessLevel(assemblyName.FullName, typeName); + } + + public AssemblyName AssemblyAccessToAssemblyName + { + get { return new AssemblyName(AssemblyNameString); } + } + + public string PrivateAccessToTypeName { get; private set; } + + internal string AssemblyNameString { get; private set; } + } +} diff --git a/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs new file mode 100644 index 0000000..00a38fa --- /dev/null +++ b/src/libraries/System.Security.Permissions/src/System/Xaml/Permissions/XamlLoadPermission.cs @@ -0,0 +1,32 @@ +// 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.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Permissions; + +namespace System.Xaml.Permissions +{ + public sealed class XamlLoadPermission : CodeAccessPermission, IUnrestrictedPermission + { + public XamlLoadPermission(PermissionState state) { } + public XamlLoadPermission(XamlAccessLevel allowedAccess) { } + public XamlLoadPermission(IEnumerable allowedAccess) { } + [ComVisible(false)] + public override bool Equals(object obj) { return ReferenceEquals(this, obj); } + [ComVisible(false)] + public override int GetHashCode() { return base.GetHashCode(); } + public IList AllowedAccess { get; private set; } = new ReadOnlyCollection(Array.Empty()); + public override IPermission Copy() { return new XamlLoadPermission(PermissionState.Unrestricted); } + public override void FromXml(SecurityElement elem) { } + public bool Includes(XamlAccessLevel requestedAccess) { return true; } + public override IPermission Intersect(IPermission target) { return new XamlLoadPermission(PermissionState.Unrestricted); } + public override bool IsSubsetOf(IPermission target) { return true; } + public override SecurityElement ToXml() { return default(SecurityElement); } + public override IPermission Union(IPermission other) { return new XamlLoadPermission(PermissionState.Unrestricted); } + public bool IsUnrestricted() { return true; } + } +} diff --git a/src/libraries/System.Security.Permissions/tests/PermissionTests.cs b/src/libraries/System.Security.Permissions/tests/PermissionTests.cs index 705e870..e1cf80f 100644 --- a/src/libraries/System.Security.Permissions/tests/PermissionTests.cs +++ b/src/libraries/System.Security.Permissions/tests/PermissionTests.cs @@ -7,6 +7,7 @@ using System.Configuration; using System.DirectoryServices; using System.Reflection; using System.Web; +using System.Xaml.Permissions; namespace System.Security.Permissions.Tests { @@ -167,6 +168,33 @@ namespace System.Security.Permissions.Tests } [Fact] + public static void MediaPermissionCallMethods() + { + MediaPermission mp = new MediaPermission(); + MediaPermission mp2 = new MediaPermission(MediaPermissionAudio.AllAudio); + MediaPermission mp3 = new MediaPermission(MediaPermissionVideo.AllVideo); + MediaPermission mp4 = new MediaPermission(MediaPermissionImage.AllImage); + MediaPermission mp5 = new MediaPermission(MediaPermissionAudio.AllAudio, + MediaPermissionVideo.AllVideo, + MediaPermissionImage.AllImage); + bool testbool = mp.IsUnrestricted(); + IPermission ip = mp.Copy(); + IPermission ip2 = mp.Intersect(ip); + IPermission ip3 = mp.Union(ip); + testbool = mp.IsSubsetOf(ip); + SecurityElement se = new SecurityElement(""); + mp.FromXml(se); + se = mp.ToXml(); + } + + [Fact] + public static void MediaPermissionAttributeCallMethods() + { + MediaPermissionAttribute mpa = new MediaPermissionAttribute(new Permissions.SecurityAction()); + IPermission ip = mpa.CreatePermission(); + } + + [Fact] public static void PrincipalPermissionCallMethods() { PrincipalPermission pp = new PrincipalPermission(new Permissions.PermissionState()); @@ -394,6 +422,49 @@ namespace System.Security.Permissions.Tests } [Fact] + public static void WebBrowserPermissionCallMethods() + { + WebBrowserPermission wp = new WebBrowserPermission(); + WebBrowserPermission wp2 = new WebBrowserPermission(PermissionState.Unrestricted); + WebBrowserPermission wp3 = new WebBrowserPermission(WebBrowserPermissionLevel.Unrestricted); + bool testbool = wp.IsUnrestricted(); + IPermission ip = wp.Copy(); + IPermission ip2 = wp.Intersect(ip); + IPermission ip3= wp.Union(ip); + testbool = wp.IsSubsetOf(ip); + SecurityElement se = new SecurityElement(""); + wp.FromXml(se); + se = wp.ToXml(); + } + + [Fact] + public static void WebBrowserPermissionAttributeCallMethods() + { + WebBrowserPermissionAttribute wpa = new WebBrowserPermissionAttribute(new Permissions.SecurityAction()); + IPermission ip = wpa.CreatePermission(); + } + + [Fact] + public static void XamlLoadPermissionCallMethods() + { + XamlAccessLevel accessLevel = XamlAccessLevel.AssemblyAccessTo(Assembly.GetExecutingAssembly().GetName()); + XamlLoadPermission xp = new XamlLoadPermission(accessLevel); + XamlLoadPermission xp2 = new XamlLoadPermission(PermissionState.Unrestricted); + XamlLoadPermission xp3 = new XamlLoadPermission(Array.Empty()); + bool testbool = xp.IsUnrestricted(); + IPermission ip = xp.Copy(); + IPermission ip2 = xp.Intersect(ip); + IPermission ip3 = xp.Union(ip); + testbool = xp.IsSubsetOf(ip); + testbool = xp.Equals(new object()); + testbool = xp.Includes(accessLevel); + int hash = xp.GetHashCode(); + SecurityElement se = new SecurityElement(""); + xp.FromXml(se); + se = xp.ToXml(); + } + + [Fact] public static void ZoneIdentityPermissionCallMethods() { ZoneIdentityPermission zip = new ZoneIdentityPermission(new PermissionState()); diff --git a/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj b/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj index 617fb63..402e93a 100644 --- a/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj +++ b/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj @@ -18,5 +18,6 @@ + - \ No newline at end of file + diff --git a/src/libraries/System.Security.Permissions/tests/XamlAccessLevelTests.cs b/src/libraries/System.Security.Permissions/tests/XamlAccessLevelTests.cs new file mode 100644 index 0000000..a1488ee --- /dev/null +++ b/src/libraries/System.Security.Permissions/tests/XamlAccessLevelTests.cs @@ -0,0 +1,25 @@ +// 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.Reflection; +using System.Xaml.Permissions; +using Xunit; + +namespace System.Security.Permissions.Tests +{ + public class XamlAccessLevelTests + { + [Fact] + public static void XamlAccessLevelTestsCallMethods() + { + Assembly execAssembly = Assembly.GetExecutingAssembly(); + Type type = typeof(int); + XamlAccessLevel accessLevel = XamlAccessLevel.AssemblyAccessTo(execAssembly); + XamlAccessLevel accessLevel2 = XamlAccessLevel.AssemblyAccessTo(execAssembly.GetName()); + XamlAccessLevel accessLevel3 = XamlAccessLevel.PrivateAccessTo(type); + XamlAccessLevel accessLevel4 = XamlAccessLevel.PrivateAccessTo(type.AssemblyQualifiedName); + AssemblyName an = accessLevel.AssemblyAccessToAssemblyName; + } + } +} -- 2.7.4