﻿<?xml version="1.0" encoding="utf-8"?>
<ErrorDocumentation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ErrorName>CS0647</ErrorName>
  <Examples>
    <string>// cs0647.cs: Error emitting 'MarshalAs' attribute because 'Specified unmanaged type is only valid on fields'
// Line: 10

using System;
using System.Runtime.InteropServices;

public class main {

    [DllImport("libname", EntryPoint = "scumbag")]
    static extern int scumbag(ref int X, [MarshalAs(UnmanagedType.ByValArray)] ref byte[] fb);
}
</string>
    <string>// cs0647.cs: Error emitting 'MarshalAs' attribute because 'SizeParamIndex field is not valid for the specified unmanaged type'
// Line: 10

using System;
using System.Runtime.InteropServices;

public class main {

    [DllImport("libname", EntryPoint = "scumbag")]
    static extern int scumbag(ref int X, [MarshalAs(UnmanagedType.ByValArray)] ref byte[] fb);
}
</string>
    <string>// cs0647.cs : Error emitting 'System.Security.Permissions.SecurityPermissionAttribute' attribute -- 'SecurityAction RequestMinimum is not valid on this declaration
// Line : 10

using System;
using System.Security;
using System.Security.Permissions;

[assembly: SecurityPermission (SecurityAction.Demand, SkipVerification=true)]

class Test
{
	static void Main () {}
}
</string>
    <string>// cs0647.cs : Error emitting 'System.Security.Permissions.SecurityPermissionAttribute' attribute -- 'SecurityAction RequestMinimum is not valid on this declaration
// Line : 10

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

	[SecurityPermission (SecurityAction.RequestMinimum, ControlPrincipal=true, Flags=SecurityPermissionFlag.ControlPrincipal)]
	static public void Main (string[] args)
	{
	}
}
</string>
    <string>// cs0647.cs : Security custom attribute 'DebugPermission' attached to invalid parent
// Line : 10

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

	[DebugPermission (SecurityAction.RequestMinimum)]
        public int i;
}

[AttributeUsage (AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[Serializable]
public class DebugPermissionAttribute : CodeAccessSecurityAttribute {

	public DebugPermissionAttribute (SecurityAction action)
		: base (action)
	{
	}
        
	public override IPermission CreatePermission ()
	{
		return null;
	}
}
</string>
    <string>// cs0647.cs : Security custom attribute 'DebugPermission' attached to invalid parent
// Line : 11

using System;
using System.Security;
using System.Security.Permissions;

public class Program {
        public delegate int DisplayHandler (string msg);
     
	[DebugPermission (SecurityAction.RequestMinimum)]
        public event DisplayHandler OnShow;
}

[AttributeUsage (AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[Serializable]
public class DebugPermissionAttribute : CodeAccessSecurityAttribute {

	public DebugPermissionAttribute (SecurityAction action)
		: base (action)
	{
	}
        
	public override IPermission CreatePermission ()
	{
		return null;
	}
}
</string>
    <string>// cs0647.cs : Security custom attribute 'DebugPermission' attached to invalid parent
// Line : 11

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

        [return: DebugPermission (SecurityAction.LinkDemand)]
        public int Show (string message)
        {
                return 2;
        }    
}

[AttributeUsage (AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[Serializable]
public class DebugPermissionAttribute : CodeAccessSecurityAttribute {

	public DebugPermissionAttribute (SecurityAction action)
		: base (action)
	{
	}
        
	public override IPermission CreatePermission ()
	{
		return null;
	}
}
</string>
    <string>// cs0647.cs : Security custom attribute 'DebugPermission' attached to invalid parent
// Line : 11

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

        [DebugPermission (SecurityAction.LinkDemand)]
        public int Show
        {
            get {
                return 2;
            }
        }    
}

[AttributeUsage (AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[Serializable]
public class DebugPermissionAttribute : CodeAccessSecurityAttribute {

	public DebugPermissionAttribute (SecurityAction action)
		: base (action)
	{
	}
        
	public override IPermission CreatePermission ()
	{
		return null;
	}
}
</string>
    <string>// cs0647.cs : Security custom attribute 'DebugPermission' attached to invalid parent
// Line : 10

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

	[PrincipalPermission (SecurityAction.Assert, Name="Poupou")]
	public virtual void Show (string message)
	{
		Console.WriteLine (message);
	}
}
</string>
    <string>// cs0647.cs :  Error emitting 'PrincipalPermission' attribute because 'Invalid SecurityAction for non-Code Access Security permission'
// Line : 10

using System;
using System.Security;
using System.Security.Permissions;

public class Program {

	[PrincipalPermission ((SecurityAction)100, Name="Poupou")]
	public virtual void Show (string message)
	{
	}
}
</string>
    <string>// cs0647: Format of GUID is invalid
// Line: 5
using System.Runtime.InteropServices;

[Guid ("aaa")]

class X {
static void Main () {}
}
</string>
  </Examples>
</ErrorDocumentation>