TODO/UNDO/HACK
关键词
说明
TODO
未实现
UNDO
未做完
HACK
需修改
调用线程必须为STA,因为许多UI组件都需要
WPF后台代码不能直接控制UI,需要调用这个Dispatcher
1App.Current.Dispatcher.Invoke((Action)(()=>{...}));
xaml引用自定义类提示命名空间不存在对应名称
清理/重新生成解决方案
切换Release与Debug模式
切换目标平台后再重新生成解决方案,正常后可再改回来
WPF动态引用资源报错
错误
System.Windows.Markup.XamlParseException:“在“System.Windows.StaticResourceExtension”上提供值时引发了异常。”
解决方法引用资源文件后使用DynamicResource绑定key(不是StaticResource)
StaticResource必须先引用资源,再绑定。资源在运行前就已经确定
DynamicResource动态加载资源,在需要的时候才加载。
Win10修改用户名
Win10网络账户登录的不能从控制面板修改用户名(没有修改用户名选项),但有可能用户名为中文等其他特殊字符
部分软件不支持汉字路径,将安装失败或运行异常。
运行——netplwiz——用户账户对话框
双击用户——修改用户名
重启
但这样并不会更改Users下的文件夹名称。
更改Users下的文件夹名称会涉及到注册表操作,也会导致很多软件找不到之前的用户文件夹,不建议更改。还不如重装系统安全。
可以新建用户,在新用户安装软件……
Git修改远程仓库地址
修改推送地址1git remote set-url [--push] <name> <newurl> [<oldurl>]
e.g.: git remote set-url --push origin URL
添加地址1git remote set-url --add <name> <newurl>
e.g.: git remote set-url --add origin URL
删除地址1git remote set-url --delete <name> <url>
e.g.: git remote set-url --delete origin URL
SSH Bad owner or permissions on
VsCode安装remote-SSH插件教程:https://code.visualstudio.com/docs/remote/ssh
错误打开远程时出现错误:
1Could not establish connection to "ip"
控制台输出
12Bad owner or permissions on “用户家目录/.ssh/config"过程试图写入的管道不存在
通过PowerShell连接ssh出现同样错误
原因
config文件的权限不对,该文件是由vscode自动创建的,不是用户权限。
电脑名和当前用户名相同
解决方法
自行创建配置文件(将自动创建的配置文件的内容复制出来) 在设置中修改remote.SSH.configFile(设置 –> 扩展 –> Remote-SSH –> Remote.SSH:Config File)
修改电脑名或用户名
插件式编程
定义插件接口类,接口中定义需要的沟通方法
在组件中某类继承该插件接口,实现方法
实现
12345678910111213//加载组件DLLAssembly ab = Assembly.LoadFrom(file);Type[] types = ab.GetTypes();foreach (Type t in types){ //如果某些类实现了预定义的插件接口,则认为该类适配与主程序(是主程序的插件) if (t.GetInterface("预定义的插件接口")!=null) { object o = ab.CreateInstance(t.FullName);//创建该类实例 MethodInfo method = t.GetMethod("方法名");//获得该类某方法 object returnValue = method.Invoke(实例名, 函数参数)//调用该方法 }}
WPF生成DLL
App.xaml改为Page
不可使用App.xaml定义资源,会找不到Application.Current,可存储到app.config或settings文件中
将生成设置改为类库
读写锁
LockMode类别
级别
说明
NONE(无锁)
默认
READ(读锁)
直接读数据库,不适用缓存
WRITE(写锁)
插入/更新时锁定,写入时自动写锁
UPGRADE(悲观锁)
禁止并发
UPGRADE_NOWAIT
Oracle独有
FORCE(乐观锁)
强制版本号递增_1
当使用FORCE时,需在数据库添加版本号字段
设置方法
session
1session.lock("实体名", LockMode);
query或criteria
1setLockMode("实体名", LockMode);