2010-06-10 77 views
7

我正在寻找一种方式来阅读C#中的文档属性。我听说过dsofile.dll,但它看起来像一个旧的COM包装器,并且想知道是否有一些更现代的.NET框架/ C#。我实际阅读的不是办公文档文件,而是具有自定义属性的Solidworks .SLDDRW文件。您可以在Windows资源管理器中查看和更改这些文件,方法是右键单击该文件,然后转到属性窗口“自定义”选项卡。如何阅读C#中的自定义文件属性

任何人都知道如何在C#/ .NET 3.5中读取这些自定义属性?

谢谢!

回答

6

SolidWorks的系统使用OLE文档属性API。正如您所指出的那样,微软提供了一个样本,DSOFile.dll,它允许你访问这些属性:

http://support.microsoft.com/kb/224351

SolidWorks的API也有这些性能强大的支持,但你必须加载Solidworks的使用API​​,所以它并不总是理想的解决方案。请注意,如果该文件已在Solidworks中打开,则无法使用DSOfile.dll编辑自定义属性。

您的问题的简单答案是,这些属性没有更新的API;与许多其他传统API(例如DDE)在生产环境中继续出现的方式一样,DSOFile适合此需求,并且由于其相当低级的特性,因此不适合更新。然而,DSOFile完全能够处理您的需求,并且它可以很好地与.NET一起工作。源是可用的,如果这对您的用户是个问题,可以编译为64位;这确实意味着你需要单独的64位安装,但这是一个小的代价(另外SolidWorks并不完全适合跨位开发)。

+1

您可以找到一个64位DSOFile.dll的编译副本[here](http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6)。也可以使用'C:\ Windows \ SysWOW64'中的'regsvr32.exe'而不是'C:\ Windows \ system32'中的'regsvr32.exe'来编译64位系统的32位版本。 – Wingman4l7 2012-07-09 04:25:50