关于C#调用autoCad单件模式的使用
2013-01-24 15:54
197 查看
之前在开发的过程中,生成一个文件后,再用cad打开时,提示被占用,只能以只读方式打开,有点不方便,所以改了下代码,利用了设计模式中的单件模式,当然,这个是为了在开发过程中的便利而设计的,不管怎么说,花了点时间去实现了,记录下呗......
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingAutodesk.AutoCAD.Interop;
usingAutodesk.AutoCAD.Interop.Common;
usingSystem.Runtime.InteropServices;
namespaceMode
{
publicclassAutoCADCon:IDisposable
{
privatestaticAutoCADConautocadcon;
privatestaticAcadApplication_application;
privatestaticbool_initialized;
privatestaticbool_disposed;
privatestaticbool_created=false;
privateAutoCADCon()
{
autocadcon=this;
_created=true;
_disposed=false;
try
{
_application=newAcadApplication();
_initialized=true;
}
catch
{
throw;
}
}
publicstaticAutoCADCongetInstance()
{
if(!_created)
{
autocadcon=newAutoCADCon();
}
returnautocadcon;
}
//Iftheuserdoesn'tcallDispose,the
//garbagecollectorwillupondestruction
~AutoCADCon()
{
try
{
_application.Quit();
Dispose(false);
}
catch{}
}
publicAcadApplicationApplication
{
get
{
return_application;
}
}
//Thisistheuser-callableversionofDispose.
//Itcallsourinternalversionandremovesthe
//objectfromthegarbagecollector'squeue.
publicvoidDispose()
{
Dispose(false);
GC.SuppressFinalize(this);
}
//ThisversionofDisposegetscalledbyour
//destructor.
protectedvirtualvoidDispose(booldisposing)
{
//IfwecreatedourAutoCADinstance,callits
//Quitmethodtoavoidleakingmemory.
if(!_disposed&&_initialized)
{
_application.Quit();
}
_disposed=true;
_created=false;
}
}
}
相关文章推荐
- C#关于静态函数与普通函数之间的调用问题,以及可变参数的使用
- 关于使用python调用Google浏览器弹出停用开发者模式的对话框问题
- 关于C#中派生类调用基类构造函数的理解 base使用
- 关于使用c#调用python脚本文件,脚本文件需要传递参数
- 关于C#Winform线程调用窗体的使用方法以及窗体的单一显示
- 关于C#Winform线程调用窗体的使用方法以及窗体的单一显示
- 关于C#前后台搭配使用BootGrid控件,调用数据库并返回值
- 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
- 关于使用VBA调用AutoCAD的学习
- 关于使用C#调用C++生成的动态链接库(DLL文件)
- 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
- 关于C#调用API的理解(汇多考勤机HD4K)
- C#使用技巧之调用JS脚本方法二
- 关于com.actionbarsherlock.widget.SearchView的使用无法调用SearchActivity
- C#使用Process类调用外部程序(转)
- 小结一下c#WinForm调用sql2000,将老表数据通过与新表数据比较,不同的添加进去,并使用进度条显示进度的教训与经验
- 关于C#使用DataContractJsonSerializer来进行JSON解析
- 关于STM32使用RTC唤醒停止模式的设置
- C#反射动态调用dll中的方法及使用QuartZ.net实现作业调度
- Thrift源码修改,改造RPC,支持多Processor模式(C#客户端调用)