InAttribute 클래스


데이터가 호출자에서 다시 호출자로 마샬링되는 게 아니라 호출자에서 수신자로 마샬링되어야 한다는 것을 나타냅니다.Indicates that data should be marshaled from the caller to the callee, but not back to the caller.

public ref class InAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, Inherited=false)]
public sealed class InAttribute : Attribute
type InAttribute = class
    inherit Attribute
Public NotInheritable Class InAttribute
Inherits Attribute


다음 예제에서는 배열을 매개 변수로 전달 하는 플랫폼 호출 프로토타입에 InAttributeOutAttribute를 적용 하는 방법을 보여 줍니다.The following example shows how to apply the InAttribute and OutAttribute to a platform invoke prototype that passes an array as a parameter. 방향 특성의 조합에는 호출자가 호출 수신자가 변경 내용을 볼 수 있습니다.The combination of directional attributes allows the caller to see the changes made by the callee.

using namespace System;
using namespace System::Runtime::InteropServices;

// Declare a class member for each structure element.

[StructLayout(LayoutKind::Sequential, CharSet = CharSet::Unicode)]
public ref class OpenFileName
    int structSize;
    String^ filter;
    String^ file;
    // ...

private ref class NativeMethods

    // Declare a managed prototype for the unmanaged function.

    [DllImport("Comdlg32.dll", CharSet = CharSet::Unicode)]
    static bool GetOpenFileName([In, Out]OpenFileName^ ofn);

void main() {}
using System.Runtime.InteropServices;
using System;

// Declare a class member for each structure element.
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class OpenFileName
    public int structSize = 0;
    public string filter = null;
    public string file = null;
    // ...

internal static class NativeMethods
    // Declare a managed prototype for the unmanaged function.
    [DllImport("Comdlg32.dll", CharSet = CharSet.Unicode)]
    internal static extern bool GetOpenFileName([In, Out] OpenFileName ofn);

public class MainMethod
    static void Main()
    { }
Imports System.Runtime.InteropServices

' Declare a class member for each structure element.
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Class OpenFileName

    Public structSize As Integer = 0
    Public filter As String = Nothing
    Public file As String = Nothing
    ' ...

End Class

Friend Class NativeMethods
    ' Declare managed prototype for the unmanaged function.
    Friend Declare Unicode Function GetOpenFileName Lib "Comdlg32.dll" (
       <[In](), Out()> ByVal ofn As OpenFileName) As Boolean
End Class

Public Class App
    Public Shared Sub Main()

    End Sub
End Class


매개 변수를이 특성을 적용할 수 있습니다.You can apply this attribute to parameters.

InAttribute은 선택적입니다.The InAttribute is optional. 특성은 COM interop에 대 한 지원 및 플랫폼만 호출 합니다.The attribute is supported for COM interop and platform invoke only. 명시적 설정이 없을 경우, interop 마샬러는 규칙 기반으로 매개 변수 형식, 값 또는 참조로 매개 변수를 전달 하는 했는지 여부 및 blittable 또는 비 blittable 형식 인지 가정 합니다.In the absence of explicit settings, the interop marshaler assumes rules based on the parameter type, whether the parameter is passed by reference or by value, and whether the type is blittable or non-blittable. 예를 들어 StringBuilder 클래스는 항상 In/Out으로 간주 되며, 값으로 전달 되는 문자열의 배열은에 있는 것으로 간주 됩니다.For example, the StringBuilder class is always assumed to be In/Out and an array of strings passed by value is assumed to be In.

스타일 out 키워드를 사용 C#하 여 수정 된 매개 변수에 InAttribute을 적용할 수 없습니다.You cannot apply the InAttribute to a parameter modified with the C#-styled out keyword. InAttribute, 빼기 특성과 Visual Basic의 In 키워드가 혼동 하지 않도록 하려면 특성 주위에 대괄호를 사용 하 여 <[In]> 폼을 사용 합니다.To avoid confusing the In keyword in Visual Basic with the InAttribute, minus Attribute, use the <[In]> form with brackets around the attribute.

배열 및 형식이 지정 되지 않은 비 blittable 형식에 적용 하는 경우 InAttributeOutAttribute를 결합 하는 것이 특히 유용 합니다.Combining the InAttribute and OutAttribute is particularly useful when applied to arrays and formatted, non-blittable types. 호출자가 두 특성을 적용 하는 경우에 호출 수신자가 이러한 형식에 변경 내용을 참조 하세요.Callers see the changes a callee makes to these types only when you apply both attributes. 이러한 형식은 마샬링을 수행 하는 동안 복사 해야 하므로 InAttributeOutAttribute를 사용 하 여 불필요 한 복사본을 줄일 수 있습니다.Since these types require copying during marshaling, you can use InAttribute and OutAttribute to reduce unnecessary copies.

마샬링 동작에 대 한 InAttribute 효과에 대 한 자세한 내용은 방향 특성을 참조 하세요.For more information on the effect of InAttribute on marshaling behavior, see Directional Attributes.



InAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the InAttribute class.



파생 클래스에서 구현될 때 이 Attribute의 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)



이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

(다음에서 상속됨 Attribute)

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

(다음에서 상속됨 Attribute)

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(다음에서 상속됨 Attribute)

파생된 클래스에서 재정의할 경우,이 인스턴스가 지정된 된 개체와 같은지 여부를 나타내는 값을 반환 합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(다음에서 상속됨 Attribute)

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

(다음에서 상속됨 Attribute)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보