I have been debugging a program for some time. The code below is part of an abstract class and this.initial开发者_运维问答ize() is an abstract method that is overridden by a child class. After changing Initizalize in the child class, I get the error "No Source Code Available for the Current Location" when debugging. The dialog box pops up at this method, so I suspect that is the cause of the problem. Any ideas?
public ExternalSystemAdapterClass(ArchiveServiceConfigurationHandler archiveServiceConfigurationHandler, SystemType adapterConfiguration)
{
// Init configs...
this.archiveServiceConfigurationHandler = archiveServiceConfigurationHandler;
this.adapterConfiguration = adapterConfiguration;
this.dbProviderFactory = DalFactory.GetFactory(this.adapterConfiguration);
sqlDalExternal = new SqlCommonDAL(this.adapterConfiguration.DatabaseInformation.ExternalDatabaseInformation.connectionString, this.dbProviderFactory);
// Init validations...
this.metaDataValidationsSP = new Collection<MetaDataValidationType>();
this.metaDataValidationsBL = new Collection<MetaDataValidationType>();
this.InitializeMetaDataValidations();
// Init (clean up unfinished jobs etc.)
this.Initialize(); // DEBUG ERROR: "No Source Code Available for the Current Location"
// Init data retrieval...
this.dataResponseQueue = new Queue<ExternalSystemDataResponse>();
this.alreadyProcessedDataTable = new DataTable();
this.doRun = true;
this.externalDataRetrievalThread = new Thread(ExternalDataRetrievalThreadMethod);
this.externalDataRetrievalThread.Start();
}
Could you tell us if your code is working at least, even if not debuggable?
The very first idea that come into my mind is that your Initialize method should be declared as virtual
. To help you further, you should tell us if the code works, and give some child class code parts.
精彩评论