2018年12月26日
川俣晶の縁側ソフトウェア技術雑記total 3251 count

C#・型を列挙してもリフレクションでどうしても意図した型が出てこない

Written By: 川俣 晶連絡先

問題 §

 型を列挙してもリフレクションでどうしても意図した型が出てこない。

 たとえば、.NET Core 2.1にて、System.Runtime.dllにSystem.Guidが含まれているとドキュメントに書かれているし、Visual Studioのオブジェクトブラウザにもそう表示される。しかし、そのモジュールをGetTypesメソッドで列挙しても出てこない。

原因 §

 一部の型は、【型の転送】により、そこにあるかのように見せかけているが実際には別のDLL上に実装が存在する場合がある。その場合はGetTypesメソッドで列挙する対象にならない。つまり、あるはずの型が出てこない。

 System.Guidの場合は実際にはSystem.Runtime.dllではなくSystem.Private.CoreLib.dllに実装が含まれている。System.Runtime.dllを列挙してもSystem.Guidは出てこないが、System.Private.CoreLib.dllを列挙すると出てくる。

解決 §

 GetReferencedAssembliesメソッドを使って、そこから参照されているアセンブリも列挙する。System.Runtime.dllからSystem.Private.CoreLib.dllは参照されているので、これで意図した型を発見できる。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2019年
01月
15日
Visual Studio 2017で【TF30063: ~.visualstudio.com\~ へのアクセスが許可されていません。】が出る
3days 0 count
total 5966 count
【技術雑記】の前のコンテンツ
2018年
12月
23日
OneNote 2016の検索が使い物にならない・どうする?
3days 0 count
total 2982 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20181226201747
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.