using System;
using System.Data.SqlTypes;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace utility
{
/// <summary>
/// Xml序列化与反序列化
/// </summary>
public class XmlUtil
{
/// <summary>
/// 反序列化
/// </summary>
/// <param name="xml">XML字符串</param>
/// <returns></returns>
public static T Deserialize<T>(string xml) where T : new()
{
try
{
using (Stream sr = new FileStream(xml, FileMode.Open))
{
XmlSerializer xmldes = new XmlSerializer(typeof(T));
return (T)xmldes.Deserialize(sr);
}
}
catch
{
return default(T);
}
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="obj">对象</param>
/// <returns></returns>
public static string Serializer<T>(T obj)
{
using (MemoryStream Stream = new MemoryStream())
{
XmlSerializer xml = new XmlSerializer(typeof(T));
try
{
//序列化对象
xml.Serialize(Stream, obj);
}
catch (InvalidOperationException)
{
throw;
}
Stream.Position = 0;
using (StreamReader sr = new StreamReader(Stream))
{
return sr.ReadToEnd();
}
}
}
}
}
标签: .NET Core
C# .NET EPPlus 复制 Execl 的 Sheet 到另一个 Execl
//源Execl名称
string sourceExeclFileName = "C:\\SourceExecl.xlsx";
//目标Execl名称
string targetExeclFileName = "C:\\TargetExecl.xlsx";
using (ExcelPackage package = new ExcelPackage(new FileInfo(targetExeclFileName)))
{
using (ExcelPackage sourcePackage = new ExcelPackage(new FileInfo(sourceExeclFileName)))
{
//new sheet form copy为复制到目标Execl的SheetName
package.Workbook.Worksheets.Add("new sheet from copy", sourcePackage.Workbook.Worksheets[1]);
}
package.Save();
}
C# .NET 获取当月最后一天
/// <summary>
/// 获取最后一天
/// </summary>
/// <returns>当月最后一天日期</returns>
public static DateTime GetMonthLastDay(DateTime date)
{
return date.AddDays(1 - date.Day).AddMonths(1).AddDays(-1);
}
C# .NET 获取日期是第几周
/// <summary>
/// 获取日期是第几周
/// </summary>
/// <param name="date">日期</param>
/// <returns>第几周</returns>
public static int GetWeekOfYear(DateTime date)
{
//确定此时间在一年中的位置
int dayOfYear = date.DayOfYear;
//当年第一天
DateTime tempDate = new DateTime(date.Year, 1, 1);
//确定当年第一天
int tempDayOfWeek = (int)tempDate.DayOfWeek;
tempDayOfWeek = tempDayOfWeek == 0 ? 7 : tempDayOfWeek;
//确定星期几
int index = (int)date.DayOfWeek;
index = index == 0 ? 7 : index;
//当前周的范围
DateTime retStartDay = date.AddDays(-(index - 1));
DateTime retEndDay = date.AddDays(7 - index);
//确定当前是第几周
int weekOfYear = (int)Math.Ceiling(((double)dayOfYear + tempDayOfWeek - 1) / 7);
if (retStartDay.Year < retEndDay.Year)
{
weekOfYear = 1;
}
return weekOfYear;
}
CentOS / Oracle x64 安装 .NET Core SDK
注意:.NET Core仅支持64位系统。
1、添加 dotnet repos
在安装.NET之前,需要注册 Microsoft key,注册 repos 并安装所需的依赖项。
打开 terminal 并运行以下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2、 安装 .NET SDK
在 terminal 中,运行以下命令:
sudo yum update
sudo yum install dotnet-sdk-2.2
官方英文原文:https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current
Ubuntu 安装 .NET Core SDK 2.2
Ubuntu 16.04 或更高版本安装 .NET Core SDK,需要注意的是.NET Core仅支持 16.04 或更高版本的 64位系统。
1、注册 Microsoft key和 repos
在安装.NET之前,需要注册 Microsoft key,注册 repos 并安装所需的依赖项。
打开 terminal 并运行以下命令:
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
2、 安装 .NET SDK
在 terminal 中,运行以下命令:
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
如果出现Unable to locate package dotnet-sdk-2.2
错误,运行以下命令:
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
如果还没有安装成功,可以尝试以下命令运行手动安装:
sudo apt-get install -y gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/ubuntu/18.04/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
官方英文原文:https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-current