Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7740365
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T08:45:35+00:00 2026-06-01T08:45:35+00:00

I am attempting to register a .dll using RegAsm. It is a .NET 2.0

  • 0

I am attempting to register a .dll using RegAsm. It is a .NET 2.0 dll. All classes are public and ComVisible is true. I am still getting the RA0000 : No types were registered error. Below is the code and assemblyinfo. Any help would be great, thanks!

STARTelnet.cs

/**
*Steven T. Norris     Created: 3/27/2012
*Last Updated By: Steven T. Norris     Last Updated On: 3/27/2012
*
*/

using System;
using MinimalisticTelnet;
using System.Net.Sockets;

/**
 * @brief Used to connect to, read, and respond to a STAR terminal session.
 * 
 * Steven T. Norris     Created: 3/27/2012
 */
namespace STARTelnet
{
    /**
     * Class used to connect to, read, and respond to a STAR terminal session. 
     */
    public class STARConnection
    {
        private TelnetConnection conn;
        private string output;
        private string command;
        private string prompt;

        /**
         * Instantiates new STARConnection. <br/>
         * Recommended login timeout is 2000. <br/>
         * Recommended overall timeout is 500. <br/>
         * Throws SocketException, PromptException, LoginException
         * 
         * @param [in] string username:Username for login
         * @param [in] string password:Password for login
         * @param [in] int loginTimeout:timeout milliseconds for login
         * @param [in] int overallTimeout:timeout milliseconds for session
         */
        public STARConnection(string username, string password, int loginTimeout, int overallTimeout)
        {
            output = "";
            conn = new TelnetConnection("HOSTHOSTHOST", 23);
            this.SetTimeout(overallTimeout);
            try
            {
                output = conn.Login(username, password, loginTimeout);
                if(output.Contains("You entered an invalid login name or password"))
                {
                    throw new LoginException("Failed to login");
                }
                this.ParsePrompt();
            }
            catch(Exception e)
            {
                if(e.Message.Contains("login prompt"))
                {
                    throw new PromptException("Login", "Could not find login prompt");
                }
                else if(e.Message.Contains("password prompt"))
                {
                    throw new PromptException("Password", "Could not find password prompt");
                }
                else
                {
                    throw e;
                }
            }
        }

        /**
         * Sets the timeout for the session in milliseconds
         * @param [in] int timeout:timeout for session
         */
        public void SetTimeout(int timeout)
        {
            conn.MainTimeOutMs = timeout;
            conn.TimeOutMs = timeout;
        }

        /**
         * Gets the current timeout for the session in milliseconds
         * @param [out] int:timout for session
         */
        public int GetTimeout()
        {
            return conn.TimeOutMs;
        }

        /**
         * Writes a command to the STAR session
         * @param [in] string command:command to write
         */
        public void Write(string command)
        {
            this.command = command;
            conn.Write(this.command);
            this.command = this.command.Replace("\n", "{newLine}");
        }


        /**
         * Writes a command followed by a new line (\n) to the STAR session
         * @param [in] string command:command to write
         */
        public void WriteLine(string command)
        {
            this.command = command;
            conn.WriteLine(this.command);
            this.command += "{newLine}";
        }

        /**
         * Reads output from STAR session. Assumes no data within given timeout denotes end of stream
         * @param [out] string:output from STAR session
         */
        public string Read()
        {
            output = conn.Read();
            this.ParsePrompt();
            return output;
        }

        /**
         * Reads output from STAR session with timeout changed for only this read. Assumes no data within
         * timeout denotes end of stream.
         * @param [in] int timeout:timeout for this read only
         * @param [out] string:output from STAR session
         */
        public string Read(int timeout)
        {
            int temp = this.GetTimeout();
            this.SetTimeout(timeout);
            this.Read();
            this.SetTimeout(temp);
            return output;
        }

        /*
         * Parse prompt from output
         */
        private void ParsePrompt()
        {
            prompt = output.Substring(output.LastIndexOf("\n") + 1);
        }

        /**
         * Gets output from last read
         * @param [out] string:output from last read
         */
        public string GetOutput()
        {
            return output;
        }

        /**
         * Gets last command entered
         * @param [out] string:last command entered
         */
        public string GetCommand()
        {
            return command;
        }

        /**
         * Gets prompt from last read
         * @param [out] string:last prompt
         */
        public string GetPrompt()
        {
            return prompt;
        }

        /**
         * Checks for connection
         * @param [out] bool:connection status
         */
        public bool IsConnected()
        {
            return conn.IsConnected;
        }
    }

    /**
     * Exception for failed logins
     */
    class LoginException: Exception
    {

        private string offender = "";
        public LoginException() : base() { }
        public LoginException(string message) : base(message) { }

        /**
         * Creates exception
         * @param string offender:element causing exception
         * @param string message:exception message
         */
        public LoginException(string offender, string message)
            : base(message)
        {
            this.offender = offender;
        }

        /**
         * To String method for getting exception string
         * @param [out] string:string representation of exception
         */
        public override string ToString()
        {
            if(offender == "")
            {
                return this.GetType() + ": "+this.Message+"\n"+this.StackTrace;
            }
            else
            {
                return "Incorrect login: " + offender + "--" + this.Message + "\n" + this.StackTrace;
            }
        }
    }

    /**
     * Exception for failed STAR prompts
     */
    class PromptException: Exception
    {

        private string prompt = "";
        public PromptException() : base(){ }
        public PromptException(string message) : base(message){ }

        /**
         * Creates exeption
         * @param string prompt:prompt causing exception
         * @param string message:exception message
         */
        public PromptException(string prompt, string message)
            : base(message)
        {
            this.prompt = prompt;
        }

        /**
         * To String method for getting exception string
         * @param [out] string:string representation of exception
         */
        public override string ToString()
        {
            if(prompt == "")
            {
                return this.GetType() + ": " + this.Message + "\n" + this.StackTrace;
            }
            else
            {
                return "Prompt failed: " + prompt + "--" + this.Message + "\n" + this.StackTrace;
            }
        }

    }
}

AssemblyInfo.cs

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("STARTelnet")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("COMPANY")]
[assembly: AssemblyProduct("STARTelnet")]
[assembly: AssemblyCopyright("Copyright © COMPANY 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d7ae512d-c840-4ebc-8057-73a10f286225")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T08:45:37+00:00Added an answer on June 1, 2026 at 8:45 am

    I think your problem is you have no default constructor. Please add the following code and call. This is based on guidance from MSDN.

    Calling Code (Will look different in COM of course)

    var connection = new STARConnection();
    connection.Initialize(username, password, loginTimeout, overallTimeout);
    

    New Code

    /// <summary>
    /// Default constructor needed for COM. Set parameters with properties.
    /// </summary>
    public STARConnection()
    {
    }
    
    public Initialize(string username, string password, int loginTimeout, int overallTimeout)
    {
        output = "";
        conn = new TelnetConnection("HOSTHOSTHOST", 23);
        this.SetTimeout(overallTimeout);
        try
        {
            output = conn.Login(username, password, loginTimeout);
            if(output.Contains("You entered an invalid login name or password"))
            {
                throw new LoginException("Failed to login");
            }
            this.ParsePrompt();
        }
        catch(Exception e)
        {
            if(e.Message.Contains("login prompt"))
            {
                throw new PromptException("Login", "Could not find login prompt");
            }
            else if(e.Message.Contains("password prompt"))
            {
                throw new PromptException("Password", "Could not find password prompt");
            }
            else
            {
                throw e;
            }
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm attempting to register a GIS based dll on a test computer and I'm
I'm attempting to create a CodeActivity object that will register a DLL on a
I'm attempting to change the built in .Net culture fr-CA, using the following method:
I'm attempting to register an anonymous function when a user clicks a cell in
Attempting to implement a poor man's test of whether a process is still running
I'm attempting to dynamically register entities and configurations with a context (ef4 code-only) I
I am attempting to make a registration-like page for a small forum. To register
I'm attempting to connect to the page using an HTTP Post. I do an
I'm attempting to extend django's contrib.auth User model, using an inline 'Profile' model to
I am getting the error: The filetype you are attempting to upload is not

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.