Total .NET XRef Start Page

Start Page

Welcome! Thanks for using Total .NET XRef. We hope that it helps you in your .NET Development efforts. This help file is designed to provide you with the information you need to get up and running quickly.

Key Topics

  • Quick Start

  • Using Total .NET XRef

  • Troubleshoting and Support

More .NET Products to Help You

Visit www.fmsinc.com/dotnet for the latest information on our complete line of .NET Developer solutions. Get up-to-date product information, tips and tricks, or subscribe to our email newsletter for .NET development.

Contact FMS
 www.fmsinc.com
For more information: info@fmsinc.com
Technical Support: support@fmsinc.com
Product Updates: www.fmsinc.com/free/updates


What Is Total .NET XRef?

Total .NET XRef is an add-in to Visual Studio .NET that provides real-time cross referencing of code items, showing every place that refers to a specific item. This can include variables, properties, classes, references, and more (see Performing XRef for details). Total .NET XRef works on code written in C# or Visual Basic .NET.

See also:

Why Use XRef?

How Total .NET XRef Integrates with Visual Studio .NET

Features


Why Use Total .NET XRef?

When you are knee-deep in code, it is often difficult to grasp the bigger picture of how something works (or how something should work). While Visual Studio .NET offers what is arguably the best developer IDE to date, it does not offer a way to cross reference your code. How do you see everywhere a variable is used? How do you find all classes derived from a specific base? How do you see the big picture?

Total .NET XRef is designed to solve this problem by providing real-time cross referencing of code. The product parses your C# and VB.NET code in the background as you work in Visual Studio .NET. At any given time, the parser has a complete "picture" of your code and all relationships between objects. By invoking the Total .NET XRef toolwindow , you have access to a list of all places in your project that refer to a specific code item.

This real-time cross referencing ability offers you a number of advantages, both as you write new code and as you plan to change existing code.

Getting Help as You Write Code

With Total .NET XRef you can quickly see every place that refers to a specific object, allowing you to:

  • Quickly understand code as you write it

  • Understand code written by someone else

Getting Help as You Plan Changes

Total .NET XRef is invaluable as you make changes to existing code. Whenever you make changes to existing code, there is the very real possibility that you will introduce new defects, or otherwise destabilize working features. Before you make a change to code, it is valuable to have an idea of how big an impact you are going to make.

For example, if you are going to rewrite a private member within a class, you need to know all of the places in that class that use the member. Depending on the size and complexity of the class, this change can be simple, or difficult. However, when you plan a change to a public member of a class, the risk potential of new defects increases exponentially—many other classes throughout your project may use that public method. One change quickly grows into multiple changes, and each change ripples through other classes, objects, and code.

Before embarking on a code change, you need to be able to associate a cost or risk factor to that change. You could do this by simply making the change and then seeing what breaks (a process that requires quite a bit of testing), or you could do a detailed manual analysis of your code to determine the number of changes that will be needed. Neither of these approaches is optimal. Total .NET XRef gives you invaluable help in making change decisions.

When you are contemplating making a code change, run Total .NET XRef on the code item you are thinking of changing. The product shows you a count of the number of places that refer to that code item. Armed with this information, you can make a more informed decision about the cost of the change. Additionally, with the detailed list of references that Total .NET XRef provides, you have an automatic roadmap of all the places you need to visit to ensure the change works.

See also:

What is XRef?

How Total .NET XRef Integrates with Visual Studio .NET

Features


How Total .NET XRef Integrates with Visual Studio .NET

We have designed Total .NET XRef to be simple enough to use every time you use Visual Studio .NET. To meet this goal, we have endeavored to include only the features that are really necessary, and to organize them in a way that doesn’t interfere with other parts of your IDE. All of the program’s functionality is organized into one toolwindow that can be docked or undocked just like any other Visual Studio .NET toolbar. Total .NET XRef is integrated into your code windows through the right-click context menu and the Tools menu.

See Launching the Program for more information.

See also:

What is XRef?

Why Use XRef?

Features


Features

Total .NET XRef is designed to provide real-time cross referencing of code items. The product provides the following top-level features:

  • Finds all references to code references.

  • Provides full support for C# and VB.NET code.

  • Integrates completely with Visual Studio .NET.

  • Provides a list of all items, which can be grouped, sorted, or filtered .

  • Allows the item list to be exported to an HTML page for viewing, printing, or saving.

  • Provides the total number of references to help you determine the cost of proposed code changes.

  • Written in 100% .NET code.


Visit Our Web Site

FMS is constantly developing new and better developer solutions. Total .NET XRef is part of our complete line of products designed specifically for the .NET developer. Please take a moment to visit our web site to find out about new products and updates.

www.fmsinc.com/dotnet

Product Announcements and Press Releases

Read the latest information on new products, new versions, and future products. Press releases are available the same day they are sent to the press. Sign up in our Feedback section to have press releases automatically sent to you via email.

Product Descriptions and Demos

Detailed descriptions on all our products are available. Each product has its own page with information on features and capabilities. Demo versions of several of our products are also available.

Product Registration

Register your copy of Total .NET XRef on-line. Be sure to select the email notification option so you can be contacted when updates are available or news is released. You must be registered to receive technical support.

Product Updates

FMS is committed to quality software. When we find problems in our products, we fix them and post the new builds on our web site. Check our Product Updates page in the Technical Support area for the latest build.

Utilities and Free Software

Download free demos and utilities, including add-ins and developer tools.

Technical Papers

FMS personnel often speak at conferences and write magazine articles, papers, and books. Copies and portions of this information are available to you on-line. Learn about our latest ideas and tricks for using Visual Studio .NET more effectively.

Newsgroups

Share your experiences, learn from others, and ask your questions in our virtual community. Point your web browser to:

www.fmsinc.com/support/newsgrp.htm

Or visit our web site for additional instructions

Links to Other Development Sites

Jump to other locations, including newsgroups, user group home pages, and other sites with Visual Studio .NET news, techniques, and related services.


Quick Start

If you are like most developers, you hate to read documentation. If that is the case, then this QuickStart section is for you. It gives you the absolute minimum you need to install , run , and use Total .NET XRef. After reading the QuickStart section and using the program for a while, you may want to consider reading the rest of this User Guide to assure that you get the most out of Total .NET XRef.

Total .NET XRef is designed to make it easy for you to find all references to code items. For example, you can:

  • Find all uses of a variable.

  • Find all places that refer to a class.

  • Locate all classes derived from a single base class.

  • See everywhere a procedure parameter is used.

  • Find references to objects from referenced objects.

  • And much, much more!

Total .NET XRef makes these tasks easy by providing a toolwindow that sits right in the Visual Studio .NET IDE and shows all references to the code item that you select. Since the product parses your C# or VB.NET source code in the background, it automatically "knows" where everything is used. The results appear in a grid that you can scroll through, sort , group , filter , or print .

See also:

Quick Setup

Quick Run

Sorting, Grouping, and Filtering


Quick Setup

This section provides a quick overview of installing Total .NET XRef. For detailed installation information, see Installing the Program .

Total .NET XRef runs as an add-in to Microsoft Visual Studio .NET. Because of this, you must install the product on a computer that has Visual Studio .NET installed.

Note: Total .NET XRef supports the first release version of Visual Studio .NET. If you are using pre-release versions of Visual Studio .NET such as the beta or release candidate builds, you must upgrade to the shipping version of Visual Studio .NET before installing and running Total .NET XRef.

To install the program:

  1. Run the setup program.

  2. Follow the prompts.

For more Quick Start instructions, see Quick Run .


Quick Run

This section provides a quick overview of running Total .NET XRef. For detailed instructions, see Performing XRef .

Total .NET XRef is an add-in for Visual Studio .NET. After setup , you can run the program directly from the IDE.

  1. Open Visual Studio .NET. Total .NET XRef appears as a floating toolwindow , which you can move or dock.

  2. Open a C# or VB.NET project or solution.

  3. To ensure that the Total .NET XRef parser can cross reference your code, your project or solution must be free of compile errors. The quickest way to do this is to build your project. If build errors occur, correct them, and build your project again.

  4. Position your cursor on an item in your code. In other words, select a class name, a variable, a property name, etc. For a complete list of the types of code items Total .NET XRef can work with, see Performing XRef .

  5. Right-click on the name and select XRef.

  6. The Total .NET XRef toolbar updates with a list of all references to that name.

Building a New List

To find references to another item, repeat steps 5 and 6, and the list of items updates accordingly.

Go to Definition

Use the Go to Definition button to move the cursor in the code window to the definition of the identifier you last cross referenced.


Sorting, Grouping, and Filtering

This section provides a quick overview of Sorting, Filtering, and Grouping options. For detailed instructions, see Sorting, Grouping, and Filtering .

After running Total .NET XRef, there are several options available for viewing the results list.

Sorting Items

You can sort the list of items by any column or group of columns. To sort by a column, click on its column header. To sort by multiple columns, hold down the Shift key as you click on column headers. When you sort by a column, an arrow appears in the column header to show the sort order—a down arrow for an ascending sort, or an up arrow for a descending sort.

Grouping Items

You can group items by column to see a more organized view of the items. To group columns, click the Show/Hide Group By button on the toolbar:

Now you can drag column headers onto the group area below the toolbar. To group by multiple columns, drag multiple columns onto the group area.

Filtering Items

You can hide or show items by using the Filter. This is useful when you only want to see items of a certain type. To access the filter, press the Filter button on the toolbar:

After pressing the Filter button, you will notice that the column headers have a drop down button. Press the button to see the list of available filters, and select the one you want. To remove all filters, press the Remove all Filters button on the toolbar:


System Requirements

Total .NET XRef has the following system requirements:

  1. Microsoft Visual Studio .NET: Total .NET XRef runs as an add-in to Microsoft Visual Studio .NET. Because of this, you must install the product on a computer that has Visual Studio .NET installed.

Note: Total .NET XRef supports the first release version of Visual Studio .NET. If you are using pre-release versions of Visual Studio .NET such as the beta or release candidate builds, you must upgrade to the shipping version before installing and running Total .NET XRef.

  2. Approximately 3 MB Free Disk Space.

  3. Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows XP Professional, or Windows NT 4. Total .NET XRef is not supported under Windows 95, 98, or ME.

  4. PC with a Pentium II-class processor, 450 MHz minimum. Pentium III-class processor, 800 MHZ recommended.

  5. Minimum RAM requirements (more is always better):

  • Windows XP Professional: 160 megabytes (MB) of RAM

  • Windows 2000 Professional and Windows NT 4.0: 96 MB of RAM

  • Windows 2000 Server: 192 MB of RAM

See also:

Installing the Program


Installing the Program

Total .NET XRef is installed using an automated Windows Installer setup program. Generally, all you have to do is run setup, specify some values, and you’re done. This section contains complete information on installing and uninstalling the program.

To install Total .NET XRef, follow these steps:

  1. Locate the setup program you obtained from FMS or one of its resellers.

  2. Run the setup program.

  3. Enter your registration information, including your product key. If you do not enter a product key, your installation of Total .NET XRef will be in, "trial mode," and will only operate for 30 days.

  4. Specify the destination directory for the files.

  5. Be sure to read the README.HTM file for any late breaking news that is not included in this User Guide.

See also:

System Requirements

Check for Updates

Uninstalling the Program


Check for Updates

After Installing the Program , you should check the FMS site to see if any product updates are available. To do this, visit http://www.fmsinc.com/support and visit the product updates section.

See also:

System Requirements

Installing the Program

Uninstalling the Program


Uninstalling the Program

If you need to uninstall Total .NET XRef, follow these steps:

  1. From the Windows Start Menu, select Control Panel.

  2. From the Control Panel window, select Add/Remove Programs.

  3. Select Total .NET XRef from the list of installed programs.

  4. Press the Change/Remove button.

  5. Following the onscreen prompts.

See also:

Installing the Program


Launching the Program

When you install Total .NET XRef and run Visual Studio .NET, the add-in is automatically loaded into the IDE and the Total .NET XRef toolwindow appears. With this default behavior, you do not need to open or start the product—it is automatically loaded whenever you start Visual Studio .NET.

If the toolwindow is not open, one of the following conditions is true:

  • The toolwindow was explicitly closed (using the [X] close button).

  • The product’s add-in load status has been changed from its default value of "Startup". For more information on how to change the add-in load status, see Changing Add-In Settings .

If the toolwindow is not open, select Tools, FMS Suite, Total .NET, XRef, Show Toolwindow from the Visual Studio .NET menu.

See also:

Launching XRef

Performing XRef

The Total .NET XRef Toolwindow

Changing Add-In Settings

Understanding the Parser


Launching XRef

To perform XRef on a code item, highlight the name of the item either where it is defined, or anywhere it is used, and invoke XRef with one of the following methods:

Right-click Launching

Right-click on the name and select XRef from the context menu:

Right-click launching

Toolbar Launching

Press the XRef button on the Total .NET XRef toolwindow :

Launching Total .NET XRef from the Keyboard

You can use Visual Studio .NET’s keyboard mapping functionality to launch Total .NET XRef from the keyboard using one or more keys that you define. Follow these steps to define the keyboard shortcut:

  1. Select Tools, Options from the Visual Studio .NET menu.

  2. Select Environment, Keyboard from the options treeview on the left.

  3. In the, "Show Commands Containing," text box, type fms. A list of valid commands appears for Total .NET XRef.

  4. Select the command for which you want to map a key.

  5. In the "Press shortcut key(s):" field, press the key you want to assign, and press the Assign button.

Setting Keyboard Mappings

See also:

Launching the Program

Performing XRef

The Total .NET XRef Toolwindow

Changing Add-In Settings

Understanding the Parser


Performing XRef

You can use Total .NET XRef to find references from the code editor when editing C# or Visual Basic.NET code. The first step in finding references is to place you cursor on the code item you want to find. Total .NET XRef can find most code items, including variables, fields, namespaces, classes, methods, properties, etc.

Total .NET XRef can work with the following code items:

  • Variables and Parameters

  • Properties

  • Classes

  • Labels

  • Event Fields

  • Methods

  • Operators

  • Fields

  • Constructors

  • Namespaces

  • Modules

  • Event Properties

  • User Conversions

  • Attributes

See also:

Launching the Program

Launching XRef

The Total .NET XRef Toolwindow

Changing Add-In Settings

Understanding the Parser


Variables

Variables are defined at the method/procedure level. To XRef a variable, click on its definition, or any use of that variable. For example, possible launch points for a variable are highlighted below:

 // C#
 public class Customer
 {
    string m_LastName;

    public string LastName
    {
       get
       {
          return m_LastName;
       }
       set
       {
          m_LastName = value;
       }
    }
 }

 ' Visual Basic .NET
 Public Class Customer
    Protected m_LastName As String

    Public Property LastName() As String
       Get
          LastName = m_LastName
       End Get
       Set(ByVal Value As String)
          m_LastName = Value
       End Set
    End Property

 End Class

Parameters

Parameters are a special form of variable that are declared within a method, procedure, or property declaration. To see everywhere a parameter is used, click on its definition, or any use as shown in the highlighted examples below:

 // C#
 public int GetLastID (string LastName)
    {
       int IDLookup;
       if (LastName.Length > 0)
       {
          // Do lookup on customer
          return IDLookup;
       }
 }

 ' Visual Basic .NET
 Private Function GetLastID(ByVal LastName As String) As Integer
    If LastName.Length > 0 Then
       ' Do lookup on customer
    End If

 End Function

Match Types

For variables and parameters, the [Match Type] column in the item list can be one of two values:

Use | A use of the variable other than its declaration.
Argument | A use of the variable when it’s being passed to a method/procedure call.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Fields

Fields are the same as variables except that they are defined at the class or module level. To XRef a Field, click on either its definition, or any uses of the field. Fields have the same [match type] as variables.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Properties

You can XRef a property by launching from the property definition, or a use of the property as shown in the highlighted examples below:

 // C#
 public class Customer
    {
       string m_LastName;

       public string LastName
       {
          get
          {
             return m_LastName;
          }
          set
          {
             m_LastName = value;
          }
          }
          private void CheckLastName()
          {
             if (this.LastName.Length = 0)
             {
                // raise error back to caller
             }
          }

 ' Visual Basic .NET
 Public Class Customer
    Protected m_LastName As String

    Public Property LastName() As String
       Get
          LastName = m_LastName
       End Get
       Set(ByVal Value As String)
          m_LastName = Value
       End Set
    End Property

    Private Sub CheckLastName()
       If Me.LastName.Length = 0 Then
          ' raise error back to caller
       End If
    End Sub

Indexers and Default Properties

C# has the concept of indexers while Visual Basic .NET uses the "Default" property. The following example shows how to XRef indexers and default properties:

 // C#
 public byte this[long index] // long is a 64-bit integer

 t = file[i];

 ' Visual Basic .NET default properties
 Default Public Property ID(ByVal index As Integer) As Integer
    Get
       ID = m_ID
    End Get
    Set(ByVal Value As Integer)
       m_ID = Value
    End Set
 End Property

 Private Sub CheckLastName()
    ' Access the default property
    If Me(0) = 0 Then
       ' No id assigned
    End If
 End Sub

Match Types

For properties, the [Match Type] column in the item list can be one of the following values:

Getter | The get part.
Setter | The set part.
Use | A reference to the property.
Overrides | The base member that is overridden.
Overridden | The places where the property is overridden.
Implements | The base member that is implemented.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Constructors

You can XRef constructors by launching from the New keyword:

 // C#
 private void button1_Click(object sender, System.EventArgs e)
 {
    CorporateLayer.Customer c1 = new Customer();
    c1.LastName = "Jones";
 }

 Public Sub New()
    m_Customer = New CorporateLayer.Customer()

    m_Customer.LastName = "Jones"
 End Sub

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Classes

To find all references to a class, you can XRef from the class definition or any use of the class, including derived classes:

 // C#
 private void button1_Click(object sender, System.EventArgs e)
    {
       Customer c1 = new Customer();
       c1.LastName = "Jones";
 }

 public class Customer
 {
    ...

 ' Visual Basic .NET
 Protected m_Customer As Customer

 Public Sub New()
    m_Customer = New Customer()

    m_Customer.LastName = "Jones"
 End Sub

Match Types

For Classes, the [Match Type] column in the item list can be one of the following values:

Overridden | Where a class is being overridden.
Implemented | Where an interface is being implemented.
Use | Where it is being used as a variable type.
Scope | Where it is being used as a scope (i.e. anywhere you are using the qualified name).

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Namespaces

To XRef a namespace, launch from any use of the namespace or the namespace definition:

 // C#
    private void button1_Click(object sender, System.EventArgs e)
    {
       CorporateLayer.Customer c1 = new CorporateLayer.Customer();
       c1.LastName = "Jones";
    }
 }

 namespace CorporateLayer
 ...

 ' Visual Basic .NET
    Protected m_Customer As CorporateLayer.Customer

    Public Sub New()
       m_Customer = New CorporateLayer.Customer()

       m_Customer.LastName = "Jones"
    End Sub

 End Class

 Namespace CorporateLayer

Match Types

For namespaces, the [Match Type] column in the item list can be one of the following values:

Definition | The definition of the namespace.
Use | Use of the namespace.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Labels

To XRef labels, launch from either the definition of the label or a use of the label. Note that C# allows you to consider the express in a case statement as a label:

 // C#
 private void DetermineType(int i)
 {
  int cost = 0;

    switch(i)
    {
       case 0:
       case 1:
          cost += 25;
          break;
       case 2:
          cost += 25;
          goto case 1;
       case 3:
          cost += 50;
          goto case 1;
       default:
          Console.WriteLine("Invalid selection.");
          break;
    }
 }

 Private Function GetLastID(ByVal LN As String) As Integer
    Dim i As Integer = 0

    If LastName.Length > 0 Then
       GoTo HasValue
    Else
       GoTo HasNoValue
    End If

 ReturnPoint:
    Return i

 HasValue:
    i = GetLookup()
    GoTo ReturnPoint

 HasNoValue:
    i = -1
    GoTo ReturnPoint

 End Function

Match Types

For labels , the [Match Type] column in the item list can be one of the following values:

Definition | The definition of the label.
Use | Use of the label.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Modules

In Visual Basic .NET, you can XRef a module by clicking on its definition:

 Module modUtil

    Public Sub GetSettings()

    End Sub

 End Module

 Public Class Employee

    Sub New()
       ' Initialize settings
       modUtil.GetSettings()

    End Sub

 End Class

Match Types

For modules, the [Match Type] column in the item list can be one of the following values:

Definition | The definition of the module.
Use | Use of the module.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Event Fields

Event fields have the same launch points and match types as Fields .

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Event Properties

Event properties have the same launch points and match types as properties , except the accessors are named "Add" and "Remove," instead of "Get" and "Set."

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Methods

To XRef a method, click on the method declaration, or any use of the method. The following highlighted examples illustrate this:

 ' Visual Basic .NET
 Default Public Property ID(ByVal index As Integer) As Integer
    Get
       ID = m_ID
    End Get
    Set(ByVal Value As Integer)
       If CheckLastName() Then
          m_ID = Value
       Else
          m_ID = -1
       End If
    End Set

 End Property

 Private Function CheckLastName() As Boolean
    If Me.LastName.Length = 0 Then
       ' raise error back to caller
    End If

    ' Access the default property
    If Me(0) = 0 Then
       ' No id assigned
    End If

 End Function

Match Types

For methods, [Match Type] column in the item list can be one of the following values:

Call | A call to the method.
DelegateArg | A call to the method as a delegate argument.
Overrides | The base member that is overridden.
Overridden | Where the member is overridden.
Implements | The base member that is implemented.
Implemented | Where the method is implemented.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


User Conversions

For C# code, you can XRef user conversions.

 //C#
 // For explicit conversions
 static public explicit operator short(RomanNumeral roman);
 short s = (short)numeral;

 // For implicit conversions
 static public implicit operator short(RomanNumeral roman);

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Operators

For C# code, you can XRef operators.

 //C#
 public static Complex operator +(Complex c1, Complex c2)
 Complex sum = num1 + num2;

Although you cannot overload operators in Visual Basic .NET, you can call code authored in C# that uses overloaded operators. Total .NET XRef does correctly resolve this case.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


Attributes

You can XRef attributes by clicking on the definition of the attribute, or any use of the attribute.

For a list of all code items that Total .NET XRef can work with, see Performing XRef.


The Total .NET XRef Toolwindow

The Total .NET XRef Toolwindow contains most of the program’s functionality. Its main purpose is to show you a list of references, and provide ways to manage the list.

The Total .NET XRef Toolwindow

Moving and Docking the ToolWindow

The first time you start Visual Studio .NET after installing Total .NET XRef, the toolwindow appears in undocked mode (see Launching the Program for details). You can move the toolwindow around within the IDE, or dock it to any of the dockable positions on the screen. The Total .NET XRef toolwindow behaves exactly the same as all built-in Visual Studio .NET toolwindows.

Refer to the following sections for further information on the toolwindow:

Error Conditions

Using the Toolwindow

Sorting, Grouping, and Filtering

Toolbar Docking

Saving the List to an HTML Page

Printing the Report

See also:

Launching XRef

Performing XRef

Changing Add-In Settings

Understanding the Parser


Error Conditions

If Total .NET XRef encounters an error condition, it generally cannot display a list of references. When an error condition occurs, the Visual Studio .NET status bar updates with information about the error. Below is a list of common error conditions and how to solve them:

Error Condition

Description

No items found matching search conditions.

You have tried to perform XRef on an unsupported code item, such as a comment. For more information on valid code items, see Performing XRef .

Invalid language. VB and C# are currently supported.

You have tried to perform XRef on a language that is not supported, such as C++ or J#. Total .NET XRef supports C# and Visual Basic .NET.

Parsing solution. Please wait…

The parser is still parsing your project or solution. Wait until this message goes away before invoking the XRef function. For more information on the parser, see Understanding the Parser .

No solution open to parse.

You are trying to invoke XRef and there is no open solution.

Cannot parse solution. Your solution must be buildable or an internal error was encountered.

The parser cannot finish for one of two reasons:

  1. Your solution or project contains build errors. Fix the errors, build the project, and then try again.

  2. Your solution or project is buildable, but the parser has encountered an internal error while parsing your code. Report this error to FMS Technical Support .

See The Total .NET XRef Toolwindow for more information on the toolwindow.


Using the Toolwindow

The Total .NET XRef toolwindow has several controls that make it easier to work with lists of references:

  • Main Toolbar

  • The Items List

  • Navigating Through References

  • The Totals Field

The titlebar of the toolwindow shows the name of the code item you are currently working with.

See The Total NET XRef Toolwindow for more information on the toolwindow.


Main Toolbar

The main toolbar contains launch points for the program’s top-level functionality.

Button | Action | Description
 | Perform XRef | Finds all references to the identifier in the code window and places them in the list.
 | Go to Definition | Moves the cursor in the code window to the definition of the identifier you last searched on.
 | Display Current Results Report | Saves the current contents of the list as an HTML page and displays the page in the Visual Studio .NET IDE.
 | Show or Hide Group by Box | Shows or hides the Group by Box. When the Group by Box is displayed, you can drag column headings on it to create new groupings.
 | Show or Hide Filter | Shows or hides the filter buttons on the column headers. You can use the filter to control which references are shown in the list.
 | Remove All Filters | Removes any filters you have in place. This has the effect of making all found references visible in the list.
 | Help | Displays the Total .NET XRef help file.

See Using the Toolwindow for more information on the toolwindow.


The Items List

When you tell Total .NET XRef to find a list of references, it places the list in a grid view along with several columns of information.

The following table explains each of the columns in the Items list:

Column Name | Description
Match Type | The match type of the reference.
Project | The name of the project.
File | The full path of the file that contains the code.
Namespace | The namespace of the reference.
Class | The class where the code is defined.
Member | The member name where the code is defined.
Line | The line number where the code is defined.
Char | The character position where the code definition starts.
Line Preview | A preview of the line of code containing the reference.

See Using the Toolwindow for more information on the toolwindow.


Navigating Through References

You can click on any reference in the list and Total .NET XRef takes you to the code window that contains the reference. This is useful if you need to see all of the places in code that are referred to in the list.

See Using the Toolwindow for more information.


The Totals Field

The Totals field in the toolwindow’s title bar shows you the total number of references found. This value can be very useful in determining the estimated cost of making a change in code. For more information, see Getting Help as You Plan Changes .

Note that the Totals field respects the current filter. For example, if your current filter is only showing 12 of 100 items, the Totals field will show the filtered count, which is 12.

See Using the Toolwindow for more information.


Sorting, Grouping, and Filtering

When you are dealing with a large number of references in the list, it can be helpful to create different views of the data. Total .NET XRef provides basic functionality for sorting , grouping , and filtering reference items.

See The Total .NET XRef Toolwindow for more information.


Sorting

To sort by a column, click on the column header. Each successive click on the column header toggles back and forth between ascending and descending order.

The arrow drawn on the column header indicates the current sort order.

See also:

Grouping

Filtering


Grouping

You can group the list by any of the columns in the grid. Grouping makes it easier to see related items together.

Showing the Group By Box

To use grouping, you must have the Group by box visible. To do this, press the, "Show or Hide Group box," button on the toolbar. You will notice a gray rectangle is drawn immediately above the list. This is the Group by box.

Grouping by columns

To group by a specific column, drag the column header onto the Group by box. The example below shows the list grouped by member:

Grouping in the List

Removing Group Columns

To remove a grouping, drag the column header from the Group by box back onto the list. Note that if you drag a column off the Group by box and drop it in an area other than the list, the window automatically puts the column back on the list to the right of the last visible column.

See also:

Sorting

Filtering


Filtering

With Filtering, you can hide or show items in the list based on a condition you define. This can be useful when you are working with a large list and only want to see a specific type of item. Filtering does not actually add or remove items from the list of references—it merely makes them visible or invisible.

Showing the Filter Buttons

To apply a filter, you must first show the filter buttons. To do this, press the "Show or Hide Filter" [image] button on the toolbar. When you do this, you’ll notice that the column headers now have a black dropdown button.

Adding Filters

To add a filter, click on the filter dropdown on the column header you want to filter by. The drop down contains the following choices:

Filter Type | Description
All | Shows all values.
Custom | Allows you to define a custom filter.
Value List | Allows you to filter by a single item.

Custom Filters

You can define a custom filter by selecting, "Custom," as the filter type. When you do this, the custom filter dialog appears. Use this dialog to add fields, conditions, and criteria. When you are done, press [OK].

Custom Filter Dialog

Removing Filters

To remove all filters, press the "Remove All Filters" [image] button on the toolbar.

See also:

Sorting

Grouping


Toolbar Docking

You can move and dock the toolbar by clicking on it and dragging it to a new location within the toolwindow. You can also customize the location and inclusion of buttons by right clicking on the toolbar and selecting "Customize." Note that you should not turn the toolbar off by un-checking the checkbox next to main. If you do this, you need to reset the toolbar by selecting Tools, FMS Suite, Total .NET XRef, Reset Toolbar (from the Visual Studio.NET menu).

See The Total .NET XRef Toolwindow for more information on the toolwindow.


Saving the List to an HTML Page

You can save the current list to an HTML Page for saving or printing . To do this, press the "Display Current Results Report" [image] button on the toolbar. This displays the current contents of the references list in an HTML window.

Current Results Report

This file is saved in the application data directory for Total .NET XRef, typically:

C:\Documents and Settings\yourname\Local Settings\Application Data\FMS\Total .NET XRef\Reports\SymbolLookup.htm

Note that this report respects the current filter .

See The Total .NET XRef Toolwindow for more information on the toolwindow.


Printing the Report

After Saving the List to an HTML Page , you can print the report. Select File, Print from the Visual Studio .NET menu, or right-click on the report and select Print from the context menu.

See The Total .NET XRef Toolwindow for more information on the toolwindow.


Changing Add-In Settings

Total .NET XRef is implemented as an add-in to Visual Studio .NET. You can change the program’s load behavior by using the Visual Studio .NET add-in manager. To open this manager, select Tools, Add-In Manager from the Visual Studio .NET menu.

Visual Studio .NET Add-in Manager

To tell Visual Studio .NET to load Total .NET XRef every time it starts, check the Startup checkbox. If you do not want this auto load behavior, uncheck Startup.

See also:

Launching the Program

Launching XRef

The Total .NET XRef Toolwindow


Understanding the Parser

Total .NET XRef is able to provide a list of references to code items because it includes a parser that reads all code files in your project or solution, and builds an extensive cross referenced tree of relationships. In order to make the Total .NET XRef product as responsive as possible, the parser runs in the background, gathering information as you type.

Under normal circumstances, this background process should have very little effect on your running instance of Visual Studio .NET. However, on slow computers, or systems with a low amount of available memory, the parser may cause Visual Studio .Net to have momentary pauses as you work with it.

For more information on the parser, see Parsing Saves Changes and Disabling the Parser .

See also:

Launching the Program

Launching XRef

Performing XRef

The Total .NET XRef Toolwindow

Changing Add-In Settings


Parsing Saves Changes

When you invoke the Total .NET XRef program to lookup a code item, it saves all unsaved work in all open windows. This is the same behavior that Visual Studio .NET uses when you build a project. Note that saving changes (whether you do it explicitly or the Total .NET XRef does it) does not affect the undo buffer. In other words, you can still use Undo in Visual Studio .NET after saving a file.

For more information on the parser, see Understanding the Parser.


Disabling the Parser

If you are in the situation where you are working on a slow or low memory computer with Visual Studio .NET, you may want to disable the parser so it is not using any CPU time. Note that if you disable the parser, Total .NET XRef (and other FMS .NET products) will not run. You should consider disabling the parser only in situations where the parser causes your IDE performance to be noticeably slow.

To disable the parser, follow these steps:

  1. Close any open instances of Visual Studio .NET.

  2. Open the registry editor (RegEdit.exe).

  3. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\FMS\FMS.Sage.

  4. Create a DWORD key named Load.

  5. Set the value to 0.

  6. Restart Visual Studio .NET.

The parser is now deactivated. To re-enable the parser, set the Load value to 1.

For more information on the parser, see Understanding the Parser.


Troubleshooting

This section contains help on common problems and how to resolve them.

Total .NET XRef does not appear on the Visual Studio .NET Tools menu

This happens if the Total .NET XRef add-in is not loaded. To fix this, open the Visual Studio .NET add-in manager and load Total .NET XRef. For more information, see Changing Add-In Settings .

The Total .NET XRef Toolwindow does not appear.

If the toolwindow does not appear when you start Visual Studio, you can re-display it by selecting Tools, Total .NET XRef, Show Toolwindow from the Visual Studio .NET menu.

Total .NET XRef reports: Cannot parse solution. Your solution must be buildable or an internal error was encountered.

The parser cannot finish for one of two reasons:

  1. Your solution or project contains build errors. Fix the errors, build the project, and then try again.

  2. Your solution or project is buildable, but the parser has encountered an internal error while parsing your code. Report this error to FMS Technical Support .

There is no toolbar on the Total .NET XRef toolwindow

If you have inadvertently turned off the toolbar, you can show it by selecting Tools, Total .NET XRef, Reset Toolbar from the Visual Studio .NET menu.

You receive an application error when you press XRef.

Make sure that the parser is enabled by following the instructions outlined in Disabling the Parser .

For more information on the support resources available, see:

Support Resources

Web Site Support

Contacting Technical Support


Support Resources

If the Troubleshooting tips do not resolve the issue you are encountering, there are many resources available. Please check the following:

Readme File

Check the README file for the latest product information. The README file can be opened from the directory where you installed the product.

Product Documentation

We’ve spent a great deal of care and time to make sure the Total .NET XRef User Guide is very detailed. Check the Table of Contents and Index for your question, and then read the appropriate pages.

For more information on the support resources available, see:

Web Site Support

Contacting Technical Support


Web Site Support

The FMS web site contains extensive resources to help you use our products better. Resources include product updates, frequently asked questions (also known as FAQs), newsgroups, information on new versions, betas, and other resources.

Home Page

The FMS home page is located at

www.fmsinc.com

News and important announcements are posted here.

Support Site

The main support page is located at

www.fmsinc.com/support/

From this page, you can quickly locate the other support resources.

Product Updates

FMS takes product quality very seriously. When bugs are reported and we can fix them, we make the updates available on our web site . If you are encountering problems with our product, make sure you are using the latest version.

Frequently Asked Questions (FAQs)

Common questions and additional information beyond what is in the manual are often available from our FAQs.

Newsgroups

FMS also has general and product specific newsgroups. Connect with FMS Technical Support and other users there. Share your experiences, learn from others, and ask your questions in our virtual community:

www.fmsinc.com/support/newsgrp.htm

Or visit our web site for additional information.

Microsoft Patches

Our support site also includes links to Microsoft patches that are related to our products. Make sure you’re using the latest versions by checking here or visiting the Microsoft site.

For more information on the support resources available, see:

Support Resources

Contacting Technical Support


Contacting Technical Support

Contacting Technical Support

If the troubleshooting suggestions and other Support Resources fail to resolve your problem, please contact our technical support department. We are very interested in making sure you are satisfied with our product.

Registering Your Software

Please register your copy of Total .NET XRef. You must be registered to receive technical support. Registration also entitles you to free product updates, notifications, information about upcoming products, and beta invitations. You can even receive free email notification of our latest news.

You may register your software by mailing in your registration card or directly from our web site.

Contact Us

The best way to contact us is via email at: support@fmsinc.com

Please provide detailed information on the problem. This should include the name of the product, version, your operating system, and the specific problem. If the product generated an error file, please submit that as well.

With email, technical support issues can be more accurately resolved and tracked in our internal technical support system. It also gives us more time to understand the entire problem and allows our technical support staff to contact the developers with the entire story when necessary. Please bear in mind that a unique issue may involve meetings between the technical support staff and product developers, so your patience is appreciated.

Microsoft Technical Support

FMS only provides technical support for its products. If you have questions regarding Microsoft products, please contact Microsoft technical support.


Acknowledgements

We would like to thank the entire community of developers who have supported FMS over the years. The fact that our products are successful is due to the support and feedback our customers provide, and we truly appreciate the people who trust our work to solve their development problems.

Thanks go to our Beta testers for their diligence and feedback, and to those outside FMS who provided invaluable feedback during the design of Total .NET XRef.

At Microsoft, we would like to thank all those on the .NET team who helped with technical support along the way.

  • Development: Scott Ellis, Ramesh Shrivastav, and Dan Haught.

  • Design and Review: Luke Chung, Dave Juth, Jim Ferguson, and Steve Fisher.

  • Quality Assurance/Support: Troy Munford, Molly Pell, Rick Briganti, and Jason Williams.

  • Marketing, Production and Sales: Mellenie Runion, Martha George, Erica Ford, Beth Belsan, and Jennifer Lee.

Parts of Total .NET XRef are based on the ANTLR library developed by jGuru.com (MageLang Institute.) For more information, visit www.antlr.org .


Licensing and Copyright Information

License Agreement

PLEASE READ THE FMS SOFTWARE LICENSE AGREEMENT. YOU MUST AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT BEFORE YOU CAN INSTALL OR USE THE SOFTWARE.

IF YOU DO NOT ACCEPT THE TERMS OF THE LICENSE AGREEMENT FOR THIS OR ANY FMS SOFTWARE PRODUCT, YOU MAY NOT INSTALL OR USE THE SOFTWARE. YOU SHOULD PROMPTLY RETURN ANY FMS SOFTWARE PRODUCT FOR WHICH YOU ARE UNWILLING OR UNABLE TO AGREE TO THE TERMS OF THE FMS SOFTWARE LICENSE AGREEMENT FOR A REFUND OF THE PURCHASE PRICE.

Ownership of the Software

The enclosed software program ("SOFTWARE") and the accompanying written materials are owned by FMS, Inc. or its suppliers and are protected by United States copyright laws, by laws of other nations, and by international treaties. You must treat the SOFTWARE like any other copyrighted material except that you may make one copy of the SOFTWARE solely for backup or archival purpose, and you may transfer the SOFTWARE to a permanent storage device.

Grant of License

The SOFTWARE is available in a single user license version. Additional licenses may be purchased by contacting FMS, Inc.

For each license purchased, you are permitted (either as an individual, or if an entity, one designated individual) to use the program on one computer at a time.

Restrictions

You may not reverse engineer, de-compile, or disassemble this SOFTWARE. The SOFTWARE is licensed as a single product and may not be separated by use for more than one user at a time. You may not rent or lease the SOFTWARE. You may not transfer any of your rights under the FMS Software License Agreement to other individuals or entities. Without prejudice to any other rights, FMS may terminate this FMS Software License Agreement at any time if you fail to comply with any of its terms. In such an event of termination, you must destroy and stop using all affected SOFTWARE copies.

Transfer of License

If your SOFTWARE is marked "NOT FOR RESALE", you may not sell or resell the SOFTWARE, nor may you transfer the FMS Software license.

If your SOFTWARE is not marked "NOT FOR RESALE", you may transfer your license of the SOFTWARE to another user or entity provided that:

  1. The recipient agrees to all terms of the FMS Software License Agreement; and

  2. You provide all original materials including software disks or compact disks, and any other part of the SOFTWARE’S physical distribution to the recipient; and

  3. You remove all installations of the SOFTWARE; and

  4. You notify FMS, in writing, of the ownership transfer.

Limited Warranty

If you discover physical defects in the media on which this SOFTWARE is distributed, or in the related manual, FMS, Inc. will replace the media or manual at no charge to you, provided you return the item(s) within 60 days after purchase.

ALL IMPLIED WARRANTIES ON THE MEDIA AND MANUAL, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE LIMITED TO SIXTY (60) DAYS FROM THE DATE OF PURCHASE OF THIS PRODUCT.

Although FMS, Inc. has tested this program and reviewed the documentation, FMS, Inc. makes no warranty or representation, either expressed or implied, with respect to this SOFTWARE, its quality, performance, merchantability, or fitness for a particular purpose. As a result, this SOFTWARE is licensed "AS-IS", and you are assuming the entire risk as to its quality and performance.

IN NO EVENT WILL FMS, INC. BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE, OR INABILITY TO USE THIS SOFTWARE OR ITS DOCUMENTATION. THE WARRANTY AND REMEDIES SET FORTH IN THIS LIMITED WARRANTY ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESSED OR IMPLIED.

Some states do not allow the exclusion or limitation of implied warrantees or liability for incidental or consequential damages, so the above limitations or exclusions may not apply to you. This warranty gives you specific legal rights; you may also have other rights that vary from state to state.

U.S. Government Restricted Rights

The SOFTWARE and documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c) (1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is FMS Inc. 8027 Leesburg Pike, Suite 410, Vienna, VA 22182.

COPYRIGHT INFORMATION

Total .NET XRef is copyright © 2002 by FMS Inc. All Rights Reserved.

Microsoft, Windows, Visual Studio .NET, Visual Basic, C#, and VB are registered trademarks of Microsoft Corporation.

All other trademarks are trademarks of their respective owners.


Installing Total .NET XRef

System Requirements

Installing the Program

Check for Updates

Uninstalling the Program


Troubleshooting and Support

Troubleshooting

Support Resources

Web Site Support

Contacting Technical Support


Using Total .NET XRef

Launching the Program

Launching XRef

Performing XRef

Variables

Fields

Properties

Constructors

Classes

Namespaces

Labels

Module

Event Field

Event Property

Method

User Conversions

Operators

Attributes

The Total .NET XRef Toolwindow

Error Conditions

Using the Toolwindow

Main Toolbar

The Items List

Navigating Through References

The Totals Field

Sorting, Grouping, and Filtering

Toolbar Docking

Saving the List to an HTML Page

Printing the Report

Changing Add-In Settings

Understanding the Parser

Parsing Saves Changes

Disabling the parser