2.0 KiB
2.0 KiB
编码规范和约定
语言和注释
- 主要语言: 中文用于所有交流和代码注释
- 注释风格: 详细的中文注释解释功能和目的
- 文档: 技术文档使用中文
命名约定
- 类名: PascalCase (如PathPlanningManager)
- 方法名: PascalCase (如UpdateAnimationUI)
- 私有字段: _camelCase前缀下划线 (如_animationStatusLabel)
- 公共属性: PascalCase (如IsAnimationRunning)
- 常量: UPPER_CASE或PascalCase
线程安全模式(重要)
标准UI更新模式
if (control.InvokeRequired)
{
control.BeginInvoke(new Action(() =>
{
try
{
// UI更新逻辑
control.Property = newValue;
}
catch (Exception ex)
{
LogManager.Error($"UI更新失败: {ex.Message}");
}
}));
}
else
{
// 直接执行UI更新逻辑
control.Property = newValue;
}
批量更新模式(ListView等)
// 1. 后台准备数据
var items = new List<ListViewItem>();
// ... 准备数据 ...
// 2. 线程安全批量更新
if (listView.InvokeRequired)
{
listView.BeginInvoke(new Action(() =>
{
try
{
if (listView != null && !listView.IsDisposed)
{
listView.Items.Clear();
listView.Items.AddRange(items.ToArray());
}
}
catch (Exception ex)
{
LogManager.Error($"ListView更新失败: {ex.Message}");
}
}));
}
插件注册模式
[Plugin("NavisworksTransport.MainPlugin", "YourDeveloperID")]
[AddInPlugin(AddInLocation.AddIn)]
public class MainPlugin : AddInPlugin { }
异常处理
- 使用GlobalExceptionHandler进行应用级异常处理
- 在UI更新中使用try-catch保护
- 详细的错误日志记录使用LogManager
API使用原则
- 优先使用: Navisworks Native API (Autodesk.Navisworks.Api)
- 辅助使用: COM API (Autodesk.Navisworks.ComApi) 用于属性持久化
- 避免: 直接使用未检查的API调用