我构建了一个C#程序,在Win10上运行.我想通过按下按钮从该程序发送电子邮件(计算结果).我把来自:电子邮件地址和主题:等等放在C#属性中,但是我不想在程序的任何地方放置明文密码,而且我不希望用户输入密码每次发送邮件时为服务器.
可以这样做吗?
如果是这样,如何(一般)?
我正在考虑将所有电子邮件信息(包括服务器的加密密码)放在数据文件中,以便在程序启动期间读取.
或许Win10有一个设施...
我在XML中有这个:
<Const Name="a" Value="1.0"/>
<Const Name="b" Value="1"/>
<Const Name="c" Value="A"/>
<Const Name="d" Value="B"/>
Run Code Online (Sandbox Code Playgroud)
现在只有Name ="b" Const,Value必须是1,2,3或4.不允许其他值.其他Const可能包含其他值,如图所示.我如何在XSD中表达这一点?
到目前为止我有这个:
<xs:element name="Const">
<xs:complexType>
<xs:attribute name="Value" type="xs:string" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
我使用XSD 1.0,似乎:VS2013 ......所以"替代"对我不起作用......遗憾的是......
我有这个验证器:
public class InputValidator : AbstractValidator<InputData>
{
public InputValidator()
{
RuleFor(inputData => inputData.Ucl).GreaterThan(0).....;
RuleForEach(inputData => inputData.Loads).ChildRules(inputData => {
inputData.RuleFor(load => load.Position).GreaterThan(0).....);
});
... etc
Run Code Online (Sandbox Code Playgroud)
但是:位置(在每个负载中)也必须小于 Ucl(在输入数据中)。如何为这种关系(父参数与子参数)制定规则?
我需要命名空间范围的内容。所以我可以选择使用枚举,例如:
public enum Token
{
INFORMATIONAL,
WARNING,
ABORT,
FATAL
};
Run Code Online (Sandbox Code Playgroud)
但缺点是,例如在 WPF 中,我需要时不时地将它们转换为 int。
所以我想,为什么不呢
public static class Token
{
public const int
INFORMATIONAL = 0,
WARNING =1,
ABORT = 2,
FATAL = 3;
};
Run Code Online (Sandbox Code Playgroud)
在源代码中,它们看起来相同并且我没有转换问题。那么使用枚举的原因到底是什么?我显然错过了一些东西。枚举的原因是什么?
什么去哪儿?
这是我的C#项目的简短描述:
我有一个机械结构(在整个程序中只有一个),由大约20到30个参数(deimensions,材料参数等)描述,作为一个完整的集合,可以来自输入屏幕或来自XML文件(反序列化) ).然后必须在计算中处理这些参数以生成输出,该输出将转换为JPEG文件以及HTML文件.
视图很清楚:它是IO屏幕.
View需要一个属性所在的ViewModel.也许:
我的模型是手头的结构,由其参数描述.但是,这些参数与从IO屏幕,视图或XML中收集的参数相同.
某些输出(JPEG文件)也是视图.它可能是一个通知它已更改的属性.
现在我的问题是,我是否需要一个模型,因为ViewModel已经具有所有属性.
或者,我是否需要ViewModel,因为我的模型具有要查看的所有属性.我可以在ViewModel中定义一个Model(就像它总是在MVVM中完成)并使用Model作为View的DataContext.但是最后一个选项会让View意识到模型:不是MVVM精神.