一切福田,不離方寸,從心而覓,感無不通。

Category Archives: C#

c# base64转字符串

转成 Base64 形式的 System.String:

  转回到原来的 System.String:

  from:https://www.cnblogs.com/daimaxuejia/p/12893207.html

龙生   20 Jan 2021
View Details

c# 确定dynamic类型的数据对象是否存在某个属性

  https://www.cnblogs.com/94cool/p/8135579.html

龙生   19 Jan 2021
View Details

第6章 数据注解 System.ComponentModel.DataAnnotations 、注解后台原理、自定义验证ValidationAttribute、IValidatableObject

客户端验证对用户向表单中输入的数据给出一个即时反馈。 服务器验证,主要是因为来自网络的信息都是不能信任的。 一、 为验证注解订单 1 、验证注解的使用,自定义错误提示消息 数据注解特性定义在 System.ComponentModel.DataAnnotations 中(但有一个特性不在这个命名空间),它提供了服务器端验证,当模型属性上使用这些特性时,框架也支持客户端验证。在命名空间DataAnnotations中,有4个特性可以用来应对一般验证场合。 (1)、字符非空,最大长度,值范围,两个属性相同,正则表达式         //字段非空,最大长度160         [Required(ErrorMessage="FirstName不能为空")]         [StringLength(160, ErrorMessage = "FirstName太长了")]         public string FirstName { get; set; }         //正则表达式验证必须是电子邮件         [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}",             ErrorMessage="邮件地址不正确")]         public string Email { get; set; } //字段非空,数值类型最小值,最大值 [Required] [Range(typeof(decimal), "0.00", "49.99")] public decimal Total { get; set; } //对象两个属性拥有相同的值 [Compare("Email")] public string EmailConfirm { get; set; } […]

龙生   31 Oct 2020
View Details

使用 Docker 排查 Visual Studio 开发方面的问题

未启用卷共享。 启用“Docker CE for Windows”设置中的卷共享(仅 Linux 容器) 若要解决此问题,请执行以下操作: 右键单击通知区域中的“Docker for Windows” ,并选择“设置” 。 选择“共享驱动器” ,并共享系统驱动器和项目所在的驱动器。  备注 如果文件显示“已共享”,可能仍需要单击对话框底部的“重置凭据…”链接,以便重新启用卷共享。 若要在重置凭据后继续,可能必须重启 Visual Studio。  提示 如果未配置共享驱动器,Visual Studio 2017 版本 15.6 之后的版本会发出提示 。 容器类型 向项目添加 Docker 支持后,请选择 Windows 或 Linux 容器。 Docker 主机必须运行类型相同的容器。 要更改正在运行的 Docker 实例中的容器类型,请右键单击系统托盘中的 Docker 图标,再选择“切换到 Windows 容器…”或“切换到 Linux 容器…” 。 无法开始调试 其中一个原因可能与在用户配置文件的文件夹中有过时调试组件有关。 请执行以下命令来删除这些文件夹,以便在下次调试会话上下载最新调试组件。 del %userprofile%\vsdbg del %userprofile%\onecoremsvsmon 调试应用程序时特定于网络的错误 尝试执行可从清理容器主机网络下载的脚本,此操作会刷新主机上的网络相关组件。 装载被拒绝 使用 Docker for macOS 时,可能会遇到引用文件夹 /usr/local/share/dotnet/sdk/NuGetFallbackFolder 错误。 将文件夹添加到 Docker 中的“文件共享”选项卡 Docker 用户组 使用容器时,可能会在 Visual Studio 中遇到以下错误: 复制

必须是“docker-users”组的成员,才有使用 Docker 容器的权限。 若要将自己添加到 Windows 10 中的组,请执行以下步骤: 从“开始”菜单中,打开“计算机管理” 。 展开“本地用户和组”,并选择“组” 。 找到“docker-users”组,右键单击并选择“添加到组” 。 添加用户帐户或帐户。 注销后再次登录,以使更改生效。 还可以在管理员命令提示符下使用 net localgroup 命令向特定组添加用户。 cmd复制

[…]

龙生   28 Oct 2020
View Details

【C# DateTime】如何一次性修改DateTime的默认ToString格式

【问题】网站 项目里经常用到DateTime类型变量,要求所有日期时间类型格式标准为“yyyy-MM-dd HH:mm:ss”,但默认Tostring格式为 yyyy-M-d H:m:s ,没有前置0, 需要修改 【分析】 1、修改代码里所有DateTime类型的Tostring为 ToString("yyyy-MM-dd HH:mm:ss"),不方便 2、找见统一的修改地方, Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN", true) { DateTimeFormat = { ShortDatePattern = "yyyy-MM-dd", FullDateTimePattern = "yyyy-MM-dd HH:mm:ss" }; 发现不起作用 经分析DateTimeFormat  类的属性,发现 LongTimePattern 起作用 【结论】 增加 LongTimePattern 属性

  from:https://blog.csdn.net/onemetre/article/details/52042907

龙生   27 Oct 2020
View Details

vs 2019 显示方法被调用次数

VS 是一个很强大的编译器 以前都是根据方法 名Ctrl+F 搜索 很不方便 但VS已经有方便的提示功能了 设置方法 工具>>文本文本编译器>>所有语言>>CodeLens >> 选择启用Code了Lens   from:https://blog.csdn.net/q465162770/article/details/104039869

龙生   14 Oct 2020
View Details

基于dynamic,动态给强类型Model扩展属性

直接上代码

  示例Model

龙生   16 Jun 2020
View Details

C#中TripleDES对应Java中的DESede即大家说的3DES,附C#及Java加解密结果一致的控制台程序例子

直接上代码了。 Java控制台代码: package Test; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESedeKeySpec; import javax.crypto.spec.IvParameterSpec; import org.apache.commons.codec.binary.Base64; public class Test { private static final String encoding = "UTF-8"; public static void main(String[] args) { try { String text = "20200121";// 明文 String key = "Tt3rLPrDIVIhXqAz";// 长度控制为16,作为3DES加密用的key String encryptStr = EncryptData(text, key);// 3DES加密结果 System.out.println("明文:" + text); System.out.println("密钥:" + key); System.out.println("密文:" + encryptStr); System.out.println("解密:" + DecryptData(encryptStr, key)); } catch (Exception e) { e.printStackTrace(); } } /** * DESede加密,key长度为16 * * @param plainText 明文 * @param key 密钥 * @return DESede加密结果 * […]

龙生   09 May 2020
View Details

c# dynamic动态类型和匿名类

dynamic类型 简单示例 dynamic expando = new System.Dynamic.ExpandoObject(); //动态类型字段 可读可写 expando.Id = 1; expando.Name = "Test"; string json = Utils.ConvertJson.JsonEncode(expando);  //输出{Id:1,Name:’Test'}   //动态添加字段 List<string> fieldList = new List<string>() { "Name","Age","Sex"}; //From config or db dynamic dobj = new System.Dynamic.ExpandoObject(); var dic = (IDictionary<string, object>)dobj; foreach (var fieldItem in fieldList) { dic[fieldItem] = "set "+fieldItem+" value";  /*实现类似js里的 动态添加属性的功能 var obj={}; var field="Id"; eval("obj."+field+"=1");                                                       […]

龙生   25 Mar 2020
View Details

解析利用wsdl.exe生成webservice代理类的详解

利用wsdl.exe生成webservice代理类: 根据提供的wsdl生成webservice代理类 1、开始->程序->Visual Studio 2010 命令提示 2、输入如下红色标记部分 D:/Program Files/Microsoft Visual Studio 8/VC>wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl 在d:/Temp下就会产生一个TestService.cs 文件 注意:D:/Temp/TestService.wsdl 是wsdl路径,可以是url路径:http://localhost/Temp/Test.asmx?wsdl   wsdl参数说明: wsdl.exe <选项> <URL 或路径> <URL 或路径> … – 选项 – <URL 或路径> – 指向 WSDL 协定、XSD 架构或 .discomap 文档的 URL 或路径。 /nologo 取消显示版权标志。 /language:<language> 用于生成的代理类的语言。请从“CS”、“VB”、“JS”、“VJS”、 “CPP”中选择,或者为实现 System.CodeDom.Compiler.CodeDomProvider 的类提供一个完全限定的名称。默认语言为“CS”(CSharp)。 缩写形式为“/l:”。 /sharetypes     打开类型共享功能。此功能针对不同服务之间共享 的相同类型(命名空间、名称和网络签名必须相同) 创建一个具有单一类型定义的代码文件。 请使用 http:// URLs 作为命令行参数来引用 服务,或为本地文件创建一个 discomap 文档。 /verbose     指定 /sharetypes 开关时显示额外信息。 缩写形式为“/v”。 /fields     生成字段而非属性。缩写形式为“/f”。 /order     为粒子成员生成显式顺序标识符。 /enableDataBinding     在所有生成的类型上实现 INotifyPropertyChanged 接口, 以启用数据绑定。缩写形式为“/edb”。 /namespace:<namespace>     生成的代理或模板的命名空间。默认命名空间 为全局命名空间。缩写形式为“/n:”。 /out:<fileName|directoryPath>     生成的代理代码的文件名或目录路径。默认文件名是从 […]

龙生   20 Mar 2020
View Details
1 5 6 7 43