做了一个网络翻译的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
# ===================