2010-04-02 1 views
2

Я пытаюсь определить, какие типы или методы в сборке базовой структуры используются другими сборками в прикладной системе. Кажется, я не могу найти прямой запрос для этого.Методы/типы NDepend в сборке фреймов, используемые другими сборками/типами

Что я должен сделать, это определить, какие первые сборки непосредственно с использованием сборного каркаса, а затем вручную перечислить их во втором запросе

SELECT TYPES FROM ASSEMBLIES "IBM.Data.DB2" 
WHERE IsDirectlyUsedBy "ASSEMBLY:FirstDirectUsedByAssebmly" 
OR IsDirectlyUsedBy "ASSEMBLY:SecondDirectUsedByAssebmly" 
OR IsDirectlyUsedBy "ASSEMBLY:ThirdDirectUsedByAssebmly" 
OR IsDirectlyUsedBy "ASSEMBLY:FourthDirectUsedByAssebmly" 

Есть ли лучше/быстрее способ запроса для этого?

Кроме того, результаты запроса ориентированы только на сопоставленные типы. Экспортированный граф зависимости или матрица показывает только те детали. Я не знаю, как визуализировать график, который показывает эти типы или методы. plus показывают зависимые типы/методы из других сборок, которые их потребляют?

UPDATE

Я не могу использовать запрос как

SELECT METHODS/TYPES WHERE IsPublic AND !CouldBeInternal 

, потому что результаты возвращают очень странные результаты использования затемненных типов в сборке IBM.Data.DB2.

SELECT TYPES 
FROM ASSEMBLIES "IBM.Data.DB2" 
WHERE IsPublic AND !CouldBeInternal 


48 items 

--------------------------------------------------+--------------+ 
types            |# IL instructi| 
                |ons   | 
--------------------------------------------------+--------------+ 
IBM.Data.DB2.ae+m         |0    | 
                |    | 
IBM.Data.DB2.ae+x         |0    | 
                |    | 
IBM.Data.DB2.ae+f         |0    | 
                |    | 
IBM.Data.DB2.ae+ac        |0    | 
                |    | 
IBM.Data.DB2.ae+aa        |0    | 
                |    | 
IBM.Data.DB2.ae+u         |0    | 
                |    | 
IBM.Data.DB2.ae+z         |0    | 
                |    | 
IBM.Data.DB2.ae+e         |0    | 
                |    | 
IBM.Data.DB2.ae+b         |0    | 
                |    | 
IBM.Data.DB2.ae+g         |0    | 
                |    | 
IBM.Data.DB2.ae+ab        |0    | 
                |    | 
IBM.Data.DB2.ae+h         |0    | 
                |    | 
IBM.Data.DB2.ae+r         |0    | 
                |    | 
IBM.Data.DB2.ae+p         |0    | 
                |    | 
IBM.Data.DB2.ae+ad        |0    | 
                |    | 
IBM.Data.DB2.ae+i         |0    | 
                |    | 
IBM.Data.DB2.ae+j         |0    | 
                |    | 
IBM.Data.DB2.ae+t         |0    | 
                |    | 
IBM.Data.DB2.ae+af        |0    | 
                |    | 
IBM.Data.DB2.ae+k         |0    | 
                |    | 
IBM.Data.DB2.ae+l         |0    | 
                |    | 
IBM.Data.DB2.ae+y         |0    | 
                |    | 
IBM.Data.DB2.ae+a         |0    | 
                |    | 
IBM.Data.DB2.ae+q         |0    | 
                |    | 
IBM.Data.DB2.ae+n         |0    | 
                |    | 
IBM.Data.DB2.ae+d         |0    | 
                |    | 
IBM.Data.DB2.ae+c         |0    | 
                |    | 
IBM.Data.DB2.ae+ae        |0    | 
                |    | 
IBM.Data.DB2.ae+o         |0    | 
                |    | 
IBM.Data.DB2.ae+w         |0    | 
                |    | 
IBM.Data.DB2.ae+s         |0    | 
                |    | 
IBM.Data.DB2.ae+v         |0    | 
                |    | 
IBM.Data.DB2.DB2Command       |2 527   | 
                |    | 
IBM.Data.DB2.DB2Connection      |3 246   | 
                |    | 
IBM.Data.DB2.DB2DataAdapter      |520   | 
                |    | 
IBM.Data.DB2.DB2DataReader      |4 220   | 
                |    | 
IBM.Data.DB2.DB2_UDF_PLATFORM      |0    | 
                |    | 
IBM.Data.DB2.DB2Enumerator+DB2EnumInstance  |19   | 
                |    | 
IBM.Data.DB2.DB2Enumerator+DB2EnumDatabase  |15   | 
                |    | 
IBM.Data.DB2.DB2Error        |98   | 
                |    | 
IBM.Data.DB2.DB2ErrorCollection     |55   | 
                |    | 
IBM.Data.DB2.DB2Exception       |185   | 
                |    | 
IBM.Data.DB2.DB2Parameter       |1 853   | 
                |    | 
IBM.Data.DB2.DB2ParameterCollection    |1 383   | 
                |    | 
IBM.Data.DB2.DB2RowUpdatedEventHandler   |0    | 
                |    | 
IBM.Data.DB2.DB2RowUpdatedEventArgs    |14   | 
                |    | 
IBM.Data.DB2.DB2Type        |0    | 
                |    | 
IBM.Data.DB2.DB2XmlReader       |500   | 
                |    | 
--------------------------------------------------+--------------+ 
Sum:            |14 635  | 
                |    | 
Average:           |304.9   | 
                |    | 
Minimum:           |0    | 
                |    | 
Maximum:           |4 220   | 
                |    | 
Standard deviation:        |868.22  | 
                |    | 
Variance:           |753 808  | 
                |    | 
--------------------------------------------------+--------------+ 

Наш код не использует эти типы и перечисления напрямую.

ответ

0

Этот запрос возвращает методы (соответственно типы), которые являются общедоступными и не могут быть внутренними. Следовательно, он возвращает методы/типы, которые действительно используются вне их объявления.

SELECT METHODS/TYPES WHERE IsPublic AND !CouldBeInternal 
+0

Я видел этот запрос раньше, и я обновил свой вопрос, чтобы объяснить, почему он не работает так, как ожидалось. – icelava

 Смежные вопросы

  • Нет связанных вопросов^_^