C# 在C中调用静态方法
我使用pGina软件实现了一个插件,允许用户通过扫描NFC标签来验证计算机中的用户名/密码 我使用了一个我发现调用的程序来读取标签ID。每次扫描标签时,程序都会将ID写入文本文件,并检查ID是否与字符串上设置的ID相同C# 在C中调用静态方法,c#,visual-studio,nfc,C#,Visual Studio,Nfc,我使用pGina软件实现了一个插件,允许用户通过扫描NFC标签来验证计算机中的用户名/密码 我使用了一个我发现调用的程序来读取标签ID。每次扫描标签时,程序都会将ID写入文本文件,并检查ID是否与字符串上设置的ID相同 if (userInfo.Username.Contains("hello") && userInfo.Password.Contains("pGina") && text.Equals("UID = 0x04 82 EC BA 7A 48
if (userInfo.Username.Contains("hello") && userInfo.Password.Contains("pGina")
&& text.Equals("UID = 0x04 82 EC BA 7A 48 80"))
该插件设置为查找读取ID PC/SC包装的.exe文件。一切正常。但是,我不希望读卡器程序位于不同的文件中。我希望所有的东西都在插件文件中
我创建了一个方法并从执行标记ID runme读取的包装器中复制了代码,但我不确定如何用我创建的方法替换调用.exe文件的行
ProcessStartInfo ps=新建ProcessStartInfo@C:\Users\Student\Desktop\CSharpPCSC\CSharpPCSC\ExamplePCSCReader\bin\Release\ExamplePCSCReader.exe
有什么建议吗?我是C的新手
下面是我的插件代码,方法包含读取ID的代码
您已经创建了一个名为PluginImpl的类,并在该类中声明了runme方法。要从任何地方调用该方法,需要编写PluginImpl.runme 因为您已经将类放在了名称空间HelloPlugin中——如果调用的*.cs文件位于不同的名称空间中,那么您需要在顶部使用HelloPlugin指令 就这些 我可能误解了你的问题,如果是这样,请重新回答你的问题并给我留言 如果你想更换线路
ProcessStartInfo ps = new ProcessStartInfo(
@"C:\Users\Student\Desktop\CSharpPCSC\CSharpPCSC\"
+"ExamplePCSCReader\bin\Release\ExamplePCSCReader.exe");
如果使用方法调用,则需要如下内容
ProcessStartInfo ps = runme();
因为您是从类中调用静态方法,所以不需要PluginImpl。前缀
好的,现在它会抱怨runme没有返回ProcessStartInfo。你需要改变runme,这样它就可以了。ProcessStartInfo的任何子类都可以
static ProcessStartInfo runme()
{
// ... Some code
ProcessStartInfo toReturn = new ProcessStartInfo( //...
);
// ... More code
return toReturn;
}
使用PluginImpl.runme后,如何替换ProcessStartInfo来调用该方法。ProcessStartInfo ps=新建ProcessStartInfo@C:\Users\Student\Desktop\CSharpPCSC\CSharpPCSC\ExamplePCSCReader\bin\Release\ExamplePCSCReader.exe@我希望我最近的编辑已经解决了你的问题。如果仍然不清楚,请告诉我。
static ProcessStartInfo runme()
{
// ... Some code
ProcessStartInfo toReturn = new ProcessStartInfo( //...
);
// ... More code
return toReturn;
}