FWiW-
早期/晚期绑定可以用动态替换,动态从本质上消除了x86/x64依赖性。
我只在版本依赖COM/Platform或AutoCAD API需要时构建不同的应用程序。
作为一个快速示例,这适用于使用Autodesk的2010-2011年(.NET 3.5)。AutoCAD。互操作(依赖于COM/Platform;导致x86、x64版本):
- //...
- AcadDocument acDoc = doc.AcadDocument as AcadDocument;
- acDoc.GetType().InvokeMember("StartUndoMark",
- BindingFlags.InvokeMethod, null, acDoc, null);
- //... Do something useful
- acDoc.GetType().InvokeMember("EndUndoMark",
- BindingFlags.InvokeMethod, null, acDoc, null);
- //...
... 对于AutoCAD 2012-2015(及更高版本?)可以替换为该版本(.NET 4)做同样的事,用纯。NET(没有COM程序集引用,可以构建到“任何CPU”):
- //...
- dynamic acDoc = doc.GetAcadDocument();
- acDoc.StartUndoMark();
- //... Do something useful
- acDoc.EndUndoMark();
- //...
综上所述;更少的键入,更少的程序集引用来跟踪,更少的构建(当然,这取决于你正在编写的应用程序,一如既往)。。。万岁[动力]!
干杯 |