Newtonsoft序列化为小写驼峰的json
1234JsonConvert.SerializeObject(request, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver(), });
临时文件/文件夹
可通过tempfile包创建临时文件和临时文件夹
获取系统临时文件夹目录1tempfile.gettempdir()
临时文件夹创建临时文件夹默认没有前缀和后缀,所在目录为系统临时文件夹目录
1TemporaryDirectory(前缀, 后缀, 所在目录)
删除临时文件夹创建临时文件夹对象后,调用该对象的cleanup()方法或者使用with语句调用TemporaryDirectory
获取临时文件夹名称创建临时文件夹对象后,调用该对象的name属性,返回该临时文件夹的全路径名
1tmp.name # C:\\Users\\Admin\\AppData\\Local\\Temp\\tmpnjxna7lm
临时文件创建临时文件TemporaryFile类
常用参数参数|说明-|-mode|读写模式encoding|字符编码suffix|文件名后缀prefix|文件名前缀dir|文件所在目录delete|文件关闭后是否自动删除
获得文件IO调用该对象的file属性
其余操作方式与文件相似,如close, read, write, seek等
Metaclass Conflict
问题复现使用多继承时出现错误
1the metaclass of a derived class must be a (non-strict) subclass of the metaclasses
原因Metaclass冲突
解决方法使用register
123Class A(Base): passBase.register(A)
Accessing non-existent property
问题复现使用HEXO部署时,控制台输出警告
1234567(node:18256) Warning: Accessing non-existent property 'lineno' of module exports inside circular dependency(Use `node --trace-warnings ...` to show where the warning was created)(node:18256) Warning: Accessing non-existent property 'column' of module exports inside circular dependency(node:18256) Warning: Accessing non-existent property 'filename' of module exports inside circular dependency(node:18256) Warning: Accessing non-existent pr ...
Git hard reset后的恢复
问题重现使用git reset --hard后,需要恢复至reset前的代码
解决办法reset前commit了,可通过查看日志,找到hash恢复
查找日志,找到记录的hash
1git reflog
查看某记录提交信息
1git log <id>
恢复
1git reset <id>
Convert string to integer
参考:[linux - How to convert string to integer in UNIX - Stack Overflow](https://onedrive.live.com/view.aspx?resid=8397E424B7DC017C%211760241&id=documents&wd=target%28%E7%BC%96%E7%A8%8B%2FLinux.one%7CC31B288E-EBC4-4484-916C-A9DF7E1F23D1%2FConvert%20string%20to%20integer%7CA7CC4C08-8721-4976-8C84-C3A92ED28499%2F%29onenote:https://d.docs.live.net/8397e424b7dc017c/Onenote/学习/编程/Linux.one#Convert%20string%20to%20integer§ion-id={C31B288E-EBC4-4484-916C-A9DF7E1F23D1}&page-id={A7CC4C0 ...
在异步方法中使用同步方法
参考https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.run?view=net-6.0
问题复现当在异步方法中没有用到异步时会产生警告
异步方法缺少”await”运算符
1234async Task Method(){ SyncMethod();return;}
解决办法在该异步方法中调用Task.Run,将内部调用的同步方法改为异步
1234async Task Method(){ Task.Run(()=>SyncMethod());return;}
Git合并时fatal: refusing to merge unrelated histories
错误1fatal: refusing to merge unrelated histories
错误原因两个分支没有关联
解决方法添加参数--allow-unreleated-histories
1git merge <branch> --allow-unrelated-histories
HttpClient请求HTTP时证书错误
错误信息1System.Net.Http.HttpRequestException: 发送请求时出错。 ---> System.Net.WebException: 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 ---> System.Security.Authentication.AuthenticationException: 根据验证过程,远程证书无效。
解决方法设置HttpClient的证书验证方式
引入System.Net.Http.WebRequest
设置HttpClient的Handler,使其证书验证永远返回True
1HttpClient Client = new HttpClient(new WebRequestHandler() { ServerCertificateValidationCallback = (ser, cer, chn, err) => { return true; }, });
TransactionScope中异步操作超时
参考:https://stackoverflow.com/questions/13543254/get-transactionscope-to-work-with-async-await/17527759#17527759
TransactionScope默认不支持异步操作,在.NET4.5.1之后添加了TransactionScopeAsyncFlowOption用以支持异步
1Var transaction = new TransactionScope(TransactionScopeOption, TransactionOptions,TransactionScopeAsyncFlowOption.Enabled);