2012-08-16 2 views
-2

이 구조체에 대한 정보를 찾고 있었지만 찾지 못했습니다. 그래서 누군가가 이것을 설명하거나 URl을 가리키는 시간이 있다면 그것은 설명됩니다. 이 C# 정의에 대한 설명 : function_name (이 class_name namevar)

나는 예를 들어, 같은 기능의 죄 웹의 C# 응용 프로그램에서이 정의를 발견

public static class PrincipalExtensions 
{ 
    public static Site.Web.Models.SiteIdentity SiteIdentity(this System.Security.Principal.IPrincipal principal) 
    { 
     ..... 
     } 

} 
+5

[확장 방법] (http://msdn.microsoft.com/en-us/library/bb383977.aspx) – Oded

답변

6

이것은 확장 방법이다. 자세한 내용은 다음 문서를 참조하십시오. http://msdn.microsoft.com/en-us/library/bb383977.aspx

짧은 버전 :이 구문을 사용하면 클래스 인스턴스에서 호출 할 수있는 몇 가지 메서드를 사용할 수 있습니다 (클래스에서 상속 할 수 없더라도). 보호 된 회원 또는 비공개 회원/필드/방법에 대한 액세스 권한은 부여되지 않습니다.

가장 주목할만한 사용법 : System.Linq 네임 스페이스의 IEnumerable/IQueryable에 대한 확장 메서드.

+0

또한 그의 질문은 ASP와 많은 관련이 있습니다. 따라서 "Site.Web.Models.SiteIdentity" – tcables

+1

실제로 클래스에 메서드를 추가하지 않는다는 것만 큼 가치가 있습니다. 메소드가 클래스에 추가되었습니다. 메서드 자체는 확장 메서드 일 때도 정적 메서드입니다. (이것이 의미있는 것은 아니지만 실제로 의미가 있습니다.) – Servy

+0

그에 따라 편집 됨 – mathieu

2

IPrincipalextension method은 사용자 지정 유형 Site.Web.Models.SiteIdentity의 개체를 반환합니다.

주된 목적은 대신 코드가 해당 사용자의 ID (IIdentity)와가 속한 어떤 역할을 포함하여, 실행 에 대한 사용자의 보안 컨텍스트를 나타냅니다.