我的代码中有一个非常疯狂的行为:
调用A()
的方法将调用Z()
。
我有一个接口IConverterStoreBase
,它提供了一种方法:ConverterBase OrderConverter(ConverterType type)
:
public interface IConverterStoreBase
{
ConverterBase OrderConverter(QDTUtil.ConverterType type);
}
基类:ConverterStoreBase
,它继承自IConverterStorBase
:
private ConverterBase OrderConverter(ConverterType TypeOfConverter)
{
ConverterBase theConverter = MakeConverter(TypeOfConverter);
theConverter.MakeConverter();
return theConverter;
}
ConverterBase IConverterStoreBase.OrderConverter(ConverterType type)
{
return OrderConverter(type);
}
调用类:DrawingProject
,它调用OrderConverter
:
private static ConverterBase GetConverter(IConverterStoreBase CSB)
{
return !DataProvider.ConverterType.Equals(ConverterType.NotSupported) ? CSB.OrderConverter(DataProvider.ConverterType) : null;
}
DataProvider
是中心类,其中包含不同的数据结构和变量,代码的许多不同部分都需要这些数据结构和变量。
现在是问题所在(它首先在Visual Studio 2017中出现):
在调试时,我从CSV填充数据,该数据由程序处理。处理完所有数据后,程序就可以根据该数据准备好转换器。这是调用GetConverter
的步骤。
首先GetConverter
检查是否支持项目ConverterType
。如果不是,则仅返回null
,否则应调用IConverterStoreBase
的{{1}},但它会调用OrderConverter
中的属性,而该属性与此步骤无关,它调用:
DataProvider
是控制状态栏的实例。 CodeMap和所有引用都显示正确的调用路径。
从vs2013迁移到vs2017时,也许有些问题。
任何建议如何解决此问题?
编辑1:
Name Language > QDTUtil.dll!QDTUtil.ProjectData.GetValue(string group = "Converter", string value = "Topology") Line 51 C# Symbols loaded. Converter.dll!Converter.GL150.FactoryGL150N.AddOverview.get() Unknown Non-user code. Skipped loading symbols. Converter.dll!Converter.GL150.ConverterGL150N.MakeConverter() Unknown Non-user code. Skipped loading symbols. Converter.dll!Converter.ConverterStoreBase.Converter.IConverterStoreBase.OrderConverter(QDTUtil.ConverterType type) Unknown Non-user code. Skipped loading symbols. QDTFunction.dll!QDTFunction.DrawingProject.GetConverter(Converter.IConverterStoreBase CSB = {Converter.GL150.StoreGL150}) Line 120 C# Symbols loaded. QDTFunction.dll!QDTFunction.DrawingProject.CreateConverter() Line 68 C# Symbols loaded.
答案 0 :(得分:0)
确定此问题已通过编辑dll解决。属性:
我没有与之联系的东西。
该解决方案的信用归mjwills所有。 :)