Tag: .net

在.NET中,如何获取符号链接(或重新分析点)的目标?

在.NET中,我认为我可以通过调用System.IO.File.GetAttributes()并检查ReparsePoint位来确定文件是否是符号链接。 像这样: var a = System.IO.File.GetAttributes(fileName); if ((a & FileAttributes.ReparsePoint) != 0) { // it’s a symlink } 在这种情况下,如何获得符号链接的目标? ps:我知道如何创建符号链接。 它需要P / Invoke: [Interop.DllImport(“kernel32.dll”, EntryPoint=”CreateSymbolicLinkW”, CharSet=Interop.CharSet.Unicode)] public static extern int CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);

Liskov替代和组成

假设我有这样一个类: public sealed class Foo { public void Bar { // Do Bar Stuff } } 我想扩展它以增加扩展方法可以做的事情….我唯一的选择是组合: public class SuperFoo { private Foo _internalFoo; public SuperFoo() { _internalFoo = new Foo(); } public void Bar() { _internalFoo.Bar(); } public void Baz() { // Do Baz Stuff } } 虽然这有效,但它还有很多工作……但是我仍遇到一个问题: public void AcceptsAFoo(Foo a) 我可以在这里传递Foo,但不是超级Foo,因为C#不知道SuperFoo确实符合Liskov替换意义……这意味着我的扩展类通过组合使用非常有限。 因此,解决它的唯一方法是希望原始的API设计者留下一个界面: […]

延迟在C#中发送电子邮件

我们正在编写一个function,可以在x天内向客户发送提醒电子邮件,并且想知道是否可以延迟发送类似于Outlook中的电子邮件(新邮件>选项按钮>之前不提供)在C#中。 有谁知道这样做的方法?

反序列化.NET后的XML中的对象位置(行,列)

在使用XmlSerializer反序列化到.NET对象后,如何在xml标记的原始xml文件中获取位置? 这是一个示例XML 4 ABC Bern 3 ABCD Prague XML到C#对象映射 [XmlRoot(“Root”)] public class AddressDetails { [XmlElement(“Number”)] public int HouseNo; [XmlElement(“Street”)] public string StreetName; [XmlElement(“CityName”)] public string City; } 期望的结果 XmlSerializer serializer = new XmlSerializer(typeof(List)); var list = serializer.Deserialize(@”C:\Xml.txt”) as List; // this is what I would like to do // getting information to origin of the […]

.NET中的validation框架,可以在字段之间进行编辑

根据我的经验,.NET中的许多validation框架允许您一次validation一个字段,例如确保字段是邮政编码或电子邮件地址。 我通常将这些内部编辑称为。 在我的项目中,我们经常需要进行场间编辑。 例如,如果您有这样的类: public class Range { public int Min { get; set; } public int Max { get; set; } } 您可能希望确保Max大于Min。 您可能还想对外部对象进行一些validation。 例如,鉴于你有一个这样的类: public class Person { public string PostalCode { get; set; } } 无论出于何种原因,您希望确保邮政编码存在于数据库或提供给您的文件中。 我有更复杂的例子,比如用户提供数据字典,你想要针对该数据字典validation你的对象。 我的问题是:我们可以使用任何现有的validation框架(TNValidate,NHibernate Validator)用于.NET,还是我们需要使用规则引擎或者什么? 现实世界中的人们如何处理这种情况? 🙂

使用AutoMapper自定义映射

我有两个非常简单的对象: public class CategoryDto { public string Id { get; set; } public string MyValueProperty { get; set; } } public class Category { public string Id { get; set; } [MapTo(“MyValueProperty”)] public string Key { get; set; } } 使用AutoMapper将CategoryDto映射到CategoryDto时,我想要以下行为: 除了具有MapTo属性的属性之外,应该像往常一样映射属性。 在这种情况下,我必须读取Attribute的值来查找target属性。 source属性的值用于在destination属性中查找要注入的值(借助字典)。 一个例子总是好于1000字…… 例: Dictionary keys = new Dictionary { { “MyKey”, “MyValue” […]

Nullable 类型如何在幕后工作?

我很想知道Nullable类型如何在幕后工作。 它是否正在创建一个新对象(对象可以赋值为null),其值可能为null? 在我们使用Nullable 的例子中,当你为它赋值空值时,它们是从对象到int的某种隐式转换,反之亦然? 另外我知道如何手动创建它,使用Nullable类型是否有好处,而不是自己创建它?

Y中的类型X与Z中的导入类型X冲突

我在界面上有以下警告: c:\ Users [MyUser] \ Documents \ Visual Studio 2013 \ Projects \ MyProject \ MyProject \ ReportFiles \ CustomReportFieldListIcons.cs中的类型’DevExpress.Data.Browsing.Design.IColumnImageProvider’与导入的类型’DevExpress.Data.Browsing冲突.Design.IColumnImageProvider’在’C:\ Program Files(x86)\ DevExpress \ DXperience13.1 \ Bin \ Framework \ DevExpress.XtraTreeList.v13.1.dll’使用’c:\ Users [MyUser] \中定义的类型Documents \ Visual Studio 2012 \ PRojects \ XtraReportTest \ XtraReportTest \ ReportFiles \ CustomReportFieldListIcons.cs’ 为什么? 我检查过参考文献,看不出有什么问题吗?

字符串连接是否有.ToString()?

我有一个语句,其中以下列方式分配字符串: for (int i = 0; i < x; i++) { Foo.MyStringProperty = "Bar_" + i.ToString(); /* … */ } i.ToString()或者只是普通i之间是否存在任何性能差异,因为两者都只是转换为(culture invariant?)字符串等效? 我很清楚String.Concat() , String.Format , StringBuilder等的存在,但是为了这种情况,我们假设我只能使用+连接。 提前致谢。

从SQL Server 2012或SQL CLR C#发送HTTP POST请求

是否有一种普遍接受的标准方式从SQL Server 2012发送HTTP请求? 我想要做的是使用远程服务器处理搜索查询,然后将结果插回到SQL Server 2012数据库。 远程服务器提供了一个web api,它接受带有JSON内容的POST请求。 我有一个有效的解决方案,但需要将多个程序集加载到SQL Server中。 其中一些程序集不完全受支持(例如System.Net.Http.dll),发出如下警告: 警告:Microsoft .NET Framework程序集“system.net.http,version = 4.0.0.0,culture = neutral,publickeytoken = b03f5f7f11d50a3a,processorarchitecture = msil。” 您正在注册未在SQL Server托管环境中进行全面测试,并且不受支持。 将来,如果升级或维护此程序集或.NET Framework,则CLR集成例程可能会停止工作。 有关更多详细信息,请参阅SQL Server联机丛书。 我想知道是否有更好/更安全的方式不需要加载所有这些组件? 我的存储过程的CLR代码: [Microsoft.SqlServer.Server.SqlProcedure] public static void SendSearchRequestProcedure (string query, string table) { RunAsync(query,table).Wait(); } static async Task RunAsync(string query, string table) { using (var client = new […]