Unity app.config 파일에 일반 클래스를 포함합니다
-
19-08-2019 - |
문제
나는 유형의 종류가 있습니다 ISimpleCache<IBrokeredDataObject>
app.config 파일에서 유형 별명 (그 다음 유형)으로 추가하고 싶습니다.
라인
<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />
<>로 인해 분명히 잘못되었지만, 나는 그들을 탈출하는 것을 확신하지 못한다.
<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, 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" />