1 // <copyright file="SRef.cs" company="Microsoft">
2 // Copyright (c) 2009 Microsoft Corporation. All rights reserved.
5 using System.Globalization;
6 using System.Reflection;
8 using System.Security.Permissions;
9 using System.Diagnostics.CodeAnalysis;
11 namespace System.Runtime.Caching {
13 private static Type s_type = Type.GetType("System.SizedReference", true, false);
14 private Object _sizedRef;
16 internal SRef(Object target) {
17 _sizedRef = Activator.CreateInstance(s_type,
18 BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.CreateInstance,
20 new object[] { target },
24 internal long ApproximateSize {
25 [SecuritySafeCritical]
26 [PermissionSet(SecurityAction.Assert, Unrestricted = true)]
28 object o = s_type.InvokeMember("ApproximateSize",
29 BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty,
33 CultureInfo.InvariantCulture);
39 [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "Grandfathered suppression from original caching code checkin")]
40 [SecuritySafeCritical]
41 [PermissionSet(SecurityAction.Assert, Unrestricted = true)]
42 internal void Dispose() {
43 s_type.InvokeMember("Dispose",
44 BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
48 CultureInfo.InvariantCulture);