您的位置:首页 > 编程语言 > C#

关于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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: