The fully qualified type name of a project-specific class is used for Project Licence. The only requirement is that this project-specific class is present in the current assembly or in one of the referenced assemblies.

In general, the fully qualified type name has the following structure:


<Namespace>.<TypeName>


As you can see, the fully qualified type name includes its namespace, but not its assembly.


For example, the fully qualified name of the String type is System.String, and the fully qualified name of the Form type is System.Windows.Forms.Form.


In general case, the fully qualified type name can be obtained using the Type.FullName property. For example:

C#

using System;
using MyNamespace.MyInnerNamespace;

namespace MyNamespace
{
    namespace MyInnerNamespace
    {
        public class MyClass1
        {
        }
    }
   
    class Program
    {
        static void Main(string[] args)
        {
            string fullyQualifiedTypeName = typeof(MyClass1).FullName;
            //prints out "MyNamespace.MyInnerNamespace.MyClass1"
            Console.WriteLine(fullyQualifiedTypeName); 
            Console.In.Read();
        }
    }
}

VB.NET

'Root namespace is MyNamespace
Imports MyNamespace.MyInnerNamespace

Namespace MyInnerNamespace
    Public Class MyClass1
    End Class
End Namespace

Module Module1
    Sub Main()
        Dim fullyQualifiedTypeName As String = GetType(MyClass1).FullName
        'prints out "MyNamespace.MyInnerNamespace.MyClass1"
        Console.WriteLine(fullyQualifiedTypeName)
        Console.In.Read()
    End Sub
End Module


As a result, in both samples the fullyQualifiedTypeName variable will contain a correct fully qualified type name: 

MyNamespace.MyInnerNamespace.MyClass1