我有一个带有以下代码的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
}
}
我想将c#控制台应用中的所有返回值(即return IISinstall.ToString();
)用作console.writeline(IISinstall);
我假设我所做的一切都是完全错误的 如果是这样的话我将如何在控制台应用程序中实现我的DLL。
需要注意的一点是,我的控制台应用程序不接受用户的输入。
答案 0 :(得分:3)
只需从控制台应用添加对DLL的引用,然后像任何其他引用一样调用它。
var foo = new ApplicationCheck.ApCkr();
Console.WriteLine(foo.Netframeworkavailable());
答案 1 :(得分:0)
检查你的拼写,特别是capitlization。 (使用intellisense)我看到它拼写Netframeworkavailable一个地方,NetframeworkAvailable拼写另一个地方。特别是你的代码说
Netframeworkavailable (with lowercase a)
并且您发布的错误消息表示您正在通过查找
来调用它NetframeworkAvailable (with the capital A)
一般来说,我喜欢坚持使用严格的Pascal套管以避免这种情况,所以我会称它为NetFrameworkAvailable,但那只是我。
顺便说一句,如果你输入“netframewordkav”ctrl-space,你应该看到你的方法并从列表中选择它。 Intellisense不关心案例,从列表中选择将放入正确大写的调用。如果这种方法没有出现在intellisense中,那通常是一个好兆头,那就是错误的。