В приложении призмы у меня есть определение модуля как это:
[Module(ModuleName = "TestModule", OnDemand = true)]
public class Test :
ModelBase,
IModule
{
...
moduleName = "TestModule";
...
};
Как вы можете видеть, эти модули будут загружены во время выполнения, и существует множество из них с разными именами модулей.
Чтобы избежать избыточности кода, я написал базовый класс ModelBase , из которого эти модели выводятся следующим образом:
public class ModelBase:
{
/// <summary>
/// The module name
/// </summary>
protected string moduleName;
...
}
Строка moduleName никогда не используется в ModelBase, поэтому я получаю предупреждение компилятора CS0169, которое точно говорит об этом.
Я не люблю подавлять предупреждения, поэтому мне интересно, есть ли лучшее решение.
moduleName будет установлено с фактическим именем в производном классе, как вы можете видеть в 1-м фрагменте.
Проблема в том, что нельзя присвоить имя в классе ModelBase, так как имя модуля здесь заранее не известно.
Эта проблема может показаться глупой, поскольку можно написать
public class ModelBase:
{
/// <summary>
/// The module name
/// </summary>
protected string moduleName = "";
...
}
чтобы преодолеть эту проблему.
Интересно, есть ли "лучшая практика" для этого повторяющегося вопроса?
Большое спасибо
1024 * Юрген *