Это началось как способ найти сборки C'/CLI и управляемых C', чтобы все классы внутреннего для них могли быть протестированы, чтобы гарантировать, что все унаследованные методы были вновь реализованы. Я хотел бы добавить это в качестве шага процесса сборки, чтобы гарантировать, что это никогда не повторится.
Думая об этой проблеме также сделал меня немного любопытно, как было бы интересно иметь возможность определить любой язык .NET используется. Из-за этого я пошел немного дальше и сравнил сборки со всех языков .NET. До сих пор вот что я нашел через небольшую программу, которую я написал, который сравнивает тип и атрибут данных из любого набора собраний .NET через отражение:
- C - Имеет СборкаСопрофияОстрицияАтрат, Имеет GuidAttribute
- VB - имеет много дополнительных "Мой" тип (на данный что MyApplication, MySettings), Имеет GuidAttibute
- F - имеет FSharpInterfaceDataAttribute, который также определяет версию используемого компилятора.
- C - (все, кроме /clr: safe) - имеет кучу дополнительных типов (FrameInfo, type_info)
- C q /clr: безопасный - Кажется, не имеют уникальных функций отражения.
Это может быть разумным, чтобы разобрать в этом порядке:
- Это F, если он имеет FSharpInterfaceDataAttribute
- Это C, если он имеет какой-либо в огромный набор дополнительных типов я нашел.
- Это VB, если он имеет "Мои" Типы.
- Это C, если он имеет AssemblyConfigurationAttribute или GuidAttribute
- Это, вероятно, будет C q /clr:Safe
Однако, как это ужасно рубить, я хотел бы проверить здесь, чтобы убедиться, что не было другого варианта.