문제

나는 유형의 종류가 있습니다 ISimpleCache<IBrokeredDataObject> app.config 파일에서 유형 별명 (그 다음 유형)으로 추가하고 싶습니다.

라인

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />

<>로 인해 분명히 잘못되었지만, 나는 그들을 탈출하는 것을 확신하지 못한다.

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache&lt;IBrokeredDataObject&gt;, MyApplication" />

맞습니다.

나는 현재 코드를 찢어 내고 Unity를 사용하고 있으므로 편집 가능한 코드 기반에서 너무 멀리 떨어져서 이것을 신속하게 테스트하고 있으며 여기에서 확인을 받기를 바랐습니다.

도움이 되었습니까?

해결책

체크 아웃 이것 블로그 게시물:

일반 유형을 작성하려면 ` 서명 다음 인터페이스/클래스가받는 일반 유형의 수가 뒤 따릅니다.

같은 페이지의 의견은 다음과 같이 말했습니다.

일반에서 일정한 유형을 사용하려면 브래킷을 사용해야합니다 ([[ ]]).

따라서 구성 파일은 다음과 같은 내용을 포함해야한다고 생각합니다.

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject"
   type="MyApplication.ISimpleCache`1[[MyApplication.IBrokeredDataObject, MyApplication]], MyApplication" />

"grave accent"또는 "backquote"문자 사용에 유의하십시오 (`), 정상적인 단일 견적이 아닙니다 (').

다른 팁

나는 위의 답변에 대해 오히려 언급했지만 내 점수는 충분히 높지 않습니다.

구문은 type.getType 메소드 (문자열)에 대해 문서화되어 있습니다. http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx

몇 가지 예가 있으며 그 중 일부는 아래에 붙여 넣었습니다.

하나의 유형 인수가있는 일반 유형

Type.GetType("MyGenericType`1[MyType]")

두 가지 유형 인수가있는 일반 유형

Type.GetType("MyGenericType`2[MyType,AnotherType]")

두 개의 어셈블리 자격 유형 인수가있는 일반 유형

Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")

어셈블리 자격 유형 인수가있는 어셈블리 자격 일반 유형

Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")

유형 인수가 두 가지 유형 인수가있는 일반 유형 인 일반 유형

Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

그리고 이것은 두 가지 일반 유형을 수신하는 유형을 사용하는 방법입니다.

<section name="doubleFamilyConfig"
         type="ConfigTest.Configuration.FamilySection`2[
               [ConfigTest.Types.Child, ConfigTest],
               [ConfigTest.Types.Parent, ConfigTest]
               ],
               ConfigTest" />

원하는 경우 다른 줄에서 각 유형을 사용할 수 있으므로 이해하기 쉽습니다. 첫 번째 브래킷은 유형 (Familysection`2 ** [**) 바로 뒤에 있어야합니다.

그리고 이것은 제네릭 매개 변수로 강력하게 서명 된 유형입니다.

<typeAlias alias="IPublisherOfXElement" type="MyLib.IX.IPublisher`1[[System.Xml.Linq.XElement, System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], MyLib.IX" />
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top