如何使用OnStart方法从远程数据库获取数据?
protected override int OnStart(StudyLoaderArgs studyLoaderArgs)
{
ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity;
_ae = ae;
EventResult result = EventResult.Success;
AuditedInstances loadedInstances = new AuditedInstances();
try
{
XmlDocument doc = RetrieveHeaderXml(studyLoaderArgs);
StudyXml studyXml = new StudyXml();
studyXml.SetMemento(doc);
_instances = GetInstances(studyXml).GetEnumerator();
loadedInstances.AddInstance(studyXml.PatientId, studyXml.PatientsName, studyXml.StudyInstanceUid);
return studyXml.NumberOfStudyRelatedInstances;
}
finally
{
AuditHelper.LogOpenStudies(new string[] { ae.AETitle }, loadedInstances, EventSource.CurrentUser, result);
}
}我需要在主项目中使用OnStart。如何使用或调用OnStart方法
发布于 2010-05-01 11:54:03
简单地说,OnStart是一个事件;如果您可以为StudyLoaderArgs提供一些方法,那么您可以在Init(ApplicationEntity)方法中移动代码并调用它,如下所示:
Init(myStudyArgs);在OnStart中
protected override int OnStart(StudyLoaderArgs studyLoaderArgs)
{
Init(StudyLoaderArgs.Server as ApplicationEntity);
}-编辑--
Init()中移动现有的OnStart()主体void (ApplicationEntity ae) { EventResult result = EventResult.Success;AuditedInstances loadedInstances =新AuditedInstances();尝试{
XmlDocument doc = RetrieveHeaderXml(studyLoaderArgs);studyXml StudyXml =新StudyXml();studyXml.SetMemento(doc);_instances = GetInstances(studyXml).GetEnumerator();_instances studyXml.PatientsName,studyXml.StudyInstanceUid);返回studyXml.NumberOfStudyRelatedInstances;}最后{ AuditHelper.LogOpenStudies(new string[] { ae.AETitle },string[],,result);}
}
OnStart()调用Init()保护覆盖int OnStart(StudyLoaderArgs studyLoaderArgs) { ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity;_ae = ae;Init(ae);studyLoaderArgs是事件,在服务(假设它是服务)开始时将被调用。更确切地说,事件不是要调用的,而是事件作为事件发生的通知而引发的;我们所做的就是处理事件;即将方法注册为该事件的处理程序,然后在每次引发事件时调用该方法。
因此,要实现您想要的愿望,您可以调用Init()而不是OnStart();但是要调用Init(),您必须提供输入参数,这是我第一句话所说的--或者类似于OnStart(EventArgs.Empty);。
不知道这是否回答了你的问题,但我的头盖骨上方!(0:
https://stackoverflow.com/questions/2749184
复制相似问题