﻿// Decompiled with JetBrains decompiler
// Type: System.Runtime.Remoting.Messaging.CallContextSecurityData
// Assembly: mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 255ABCDF-D9D6-4E3D-BAD4-F74D4CE3D7A8
// Assembly location: C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll

using System;
using System.Runtime;
using System.Security.Principal;

namespace System.Runtime.Remoting.Messaging
{
  [Serializable]
  internal class CallContextSecurityData : ICloneable
  {
    private IPrincipal _principal;

    internal IPrincipal Principal
    {
      [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get
      {
        return this._principal;
      }
      [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set
      {
        this._principal = value;
      }
    }

    internal bool HasInfo
    {
      get
      {
        return null != this._principal;
      }
    }

    [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
    public CallContextSecurityData()
    {
    }

    public object Clone()
    {
      return (object) new CallContextSecurityData()
      {
        _principal = this._principal
      };
    }
  }
}
