个人资料

跳过导航链接首页 > 博客列表 > 博客正文

使用PowerShell加载DLL,测试动态链接库

分类:

做了一个网络翻译的DLL动态链接库,最近接触到PowerShell,发现功能十分强大。

所以试着用PowerShell测试这个WebTranslator.dll

过程稍微有些曲折,但结果很顺利..

====

本来C#的代码大概是这样子的


public class BaiduTranslate
{
     public static string appId = "";
     public static string secretKey = "";
     public static async Task<string> Baidu_Translate(string from, string to, string q)
    {
              .....
    }
}


====

总结一下知识点:

1.如果引用的DLL有依赖项,那么需要先加载依赖项,我编写的WebTranslator.dll使用了Newtonsoft.Json.dll,那么需要先加载json的这个dll,依赖项的路径一般在项目文件夹的packages文件文件夹中,或者在VS的Nuget存储库或Framework里面。

2.静态方法和静态属性的用法是[WebTranslator.Baidu.BaiduTranslate]::appId="******" ,和C艹一样,用::代表.

====

最后,用代码编译成DLL,然后用shell调用,绝对可以让powershell更有power。但是还是要容我想想这东西除了测试代码还可以干些什么.....,,ԾㅂԾ,,


#=========================

[void][reflection.assembly]::LoadFile("D:\Win10\WebTranslator\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll")  
[void][reflection.assembly]::LoadFile("D:\Win10\WebTranslator\WebTranslator\bin\Debug\netstandard2.0\WebTranslator.dll")  
[WebTranslator.Baidu.BaiduTranslate]::appId="???????"
[WebTranslator.Baidu.BaiduTranslate]::secretKey="???????"
[WebTranslator.Baidu.BaiduTranslate]::Baidu_Translate("auto","zh","Baidu translation test success").Result;
[WebTranslator.Bing.BingTranslate]::Ocp_Apim_Subscription_Key="???????"
[WebTranslator.Bing.BingTranslate]::Bing_Translate("en","zh-Hans","Bing translation test success").Result
# ===================

admin
最初发表2019/9/25 16:24:35 最近更新2019/9/25 16:41:41 2907
为此篇作品打分
10
   评论