Использовать созданную DLL в консольном приложении? - PullRequest
1 голос
/ 05 марта 2012

У меня есть DLL со следующим кодом

using System.Text;
using Microsoft.Win32;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace ApplicationCheck
{
    public  class ApCkr
    {

        #region .NET
        public string Netframeworkavailable()
        {
            bool NETinstall;
            RegistryKey k1 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client");
            if (k1 == null)
            {
                NETinstall = false;
            }
            else
            {
                NETinstall = true;
            }
            return NETinstall.ToString();
        }


        #endregion

        #region PDF
        public string PDFavailable()
        {
            bool PDFinstall;
            RegistryKey k2 = Registry.ClassesRoot.OpenSubKey(".pdf");
            if (k2 == null)
            {
                PDFinstall = false;
            }
            else
            {
                PDFinstall = true;
            }
            return PDFinstall.ToString(); 
        }
        #endregion


        #region IExplore

        public string IEavailable()
        {

            bool IEversion;
            string  k3 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Internet Explorer").GetValue("Version").ToString();
            string z = k3.Substring(0, 1);
            int a = Int32.Parse(z);

             if (a < 8)
            {
                IEversion = false;
            }
            else
            {
                IEversion = true;
            }
            return IEversion.ToString();
        }
        #endregion


        #region IIS
        public string IISavailable()
        {
            bool IISinstall;
            RegistryKey k4 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\InetStp");
            if (k4 == null)
            {
                IISinstall = false;
            }
            else
            {
                IISinstall = true;
            }
            return IISinstall.ToString();
        }


        #endregion

    }

}

Я хотел бы использовать все возвращенные (т.е. return IISinstall.ToString();) значения в консольном приложении ac # как console.writeline(IISinstall);

Я предполагаю, что все, что я сделал, на данный момент совершенно неверно. Если бы это было так, как бы я реализовал свою dll в консольном приложении.

Следует отметить, что мое консольное приложение не принимает никаких данных от пользователя.

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Просто добавьте ссылку на свою DLL из консольного приложения, а затем назовите ее, как любую другую ссылку.

var foo = new ApplicationCheck.ApCkr();
Console.WriteLine(foo.Netframeworkavailable());
0 голосов
/ 05 марта 2012

Проверьте правильность написания, особенно прописные буквы.(используйте intellisense) Я вижу, что это записано Netframeworkavailable в одном месте и NetframeworkAvailable в другом.В частности, в вашем коде написано

Netframeworkavailable (with lowercase a)

, а в сообщении об ошибке, которое вы разместили, говорится, что вы звоните по нему, ища

NetframeworkAvailable (with the capital A) 

В общем, мне нравится придерживаться строгого корпуса Pascal, чтобы избежать этого, поэтомуЯ бы назвал это NetFrameworkAvailable, но это только я.

Кстати, если вы наберете "netframewordkav" ctrl-space, вы должны увидеть свой метод и выбрать его из списка.Intellisense не заботится о регистре, и выбор из списка приведет к правильному заглавному вызову.Если метод не отображается в intellisense, это, как правило, хороший знак, что-то не так.

...