Tag: .net 4.0

触发的内容模板

我正在尝试设置一个基于DataTrigger更改的ContentTemplate。 从语法上讲,我觉得这应该可行,但在尝试呈现页面时会导致堆栈溢出: 简单地说 工作正常 – 但我想要完成的是绑定到字段列表,但只显示必填字段。 我不能只使用Visibility = collapsed,在MyFieldDisplayTemplate中实例化所有自定义控件会产生巨大的开销。 我的目标是让非必需字段在ItemsControl中具有完全不同(空)的控件模板。 有关如何设置此触发器的任何想法?

如何获取当前登录用户的ID?

我正在开发一个从ASP.NET Web应用程序模板构建的示例项目(Web表单,而不是MVC)。 用户登录后,我想获取用户的ID并将其存储在会话变量中,以便我可以在页面之间传递它。 如何从ASP.NET成员资格提供程序获取用户的ID? 根据用户的ID,我指的是成员资格数据库中的GUID。 有没有方法来获取用户的ID? 我正在使用默认数据库架构并将其部署到我的服务器。 谢谢!

使用来自另一个MEF程序集的类而不引用它

我有2个MEF组件。 让它成为组件A和组件B. 我需要的是能够从组件A中的组件B访问类而不参考它。 然后我想手动实例化该类的对象。 目前我看到MEF允许使用[Import]自动实例化对象。 它使用需要引用的接口。 我可以使用其他程序集中的数据类型而不引用它吗? MEF是否支持这种机制?

如何通过LINQ调用函数委托?

我想我在这里问正确的问题…… 我有4个存储过程,它们返回相同数据的不同子集。 我将此数据映射到服务器应用程序中的同一对象。 我将代码设置如下: internal static MyDataContext dc = new MyDataContext(); internal static List getData(DataType data) { List obj = null; switch (data) { case DataType.Type1: obj = mapObj(dc.getDataType1); break; case DateType.Type2: obj = mapObj(dc.getDataType2); break; … } } // This gives me an error that type T cannot be defined // private static List […]

CLR 2.0 vs 4.0性能?

如果运行unden CLR 4.0,为CLR 2.0编译的.NET程序运行速度会更快吗? 的app.config:

使用内存映射文件的缺点

我的Web服务每分钟写入数千个事务,我们将它们保存在高清上。 我正在测试保存这些文件的不同方法,我使用标准IO和MemoryMapped文件进行了一些测试。 在我的结果中,使用MemoryMapped文件编写文件(20 k文本文件)比标准IO快4倍,我无法找到任何缺点。 由于我对这项技术没有那么多经验,你认为我可能会遇到任何使用它们的问题,或者你没有看到任何不利之处? 谢谢! 编辑1 ,这里的来源: namespace FileWritingTests.Writers { public class MappedFileWriter : ITestWriter { public void Write(string content, string path,string id) { Byte[] data = System.Text.Encoding.UTF8.GetBytes(content); using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None)) using (MemoryMappedFile memoryMapped = MemoryMappedFile.CreateFromFile(fileStream, id, data.Count(), MemoryMappedFileAccess.ReadWrite, new MemoryMappedFileSecurity(), HandleInheritability.Inheritable, true)) { var viewStream = memoryMapped.CreateViewStream(); […]

使用Environment.Is64BitProcess从c#应用程序动态调用32位或64位DLL

我正在开发一个用C#编写的.NET 4.0项目(通过Visual Studio 2010)。 有一个第三方工具需要使用C / C ++ DLL,并且在C#中有32位应用程序和64位应用程序的示例。 问题是32位演示静态链接到32位DLL,64位演示静态链接到64位DLL。 作为.NET应用程序,它可以在客户端PC上作为32位或64位进程运行。 .NET 4.0框架提供了Environment.Is64BitProcess属性,如果应用程序作为64位进程运行,则返回true。 我想要做的是在检查Is64BitProcess属性后动态加载正确的DLL。 但是,当我研究动态加载库时,我总是想出以下内容: [DllImport(“kernel32.dll”)] public static extern IntPtr LoadLibrary(string dllToLoad); [DllImport(“kernel32.dll”)] public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); [DllImport(“kernel32.dll”)] public static extern bool FreeLibrary(IntPtr hModule); 看起来这些方法专门用于32位操作系统。 有64位等价物吗? 只要基于Is64BitProcess检查调用适当的方法,是否会导致静态链接32位和64位库的问题? public class key32 { [DllImport(“KEYDLL32.DLL”, CharSet = CharSet.Auto)] private static extern uint KFUNC(int arg1, […]

如何找出此语句生成的实际SQL?

我使用的是VS2010,.NET4和EF4。 我想看看运行它时生成的实际SQL。 另外,这是写这个陈述的最佳方式是什么? 这是我的代码: var cklContactItems = from a in dbTestCenterViews.appvuChecklistExports where a.MarketChecklistID == MCLID && a.checklistSectionID == SID && a.fieldGroupOrder != null orderby a.fieldGroupOrder ascending select new { a.Column1, a.Column2, a.Column3, a.Column4, a.Column5,a.Column1FieldID,a.Column2FieldID,a.Column3FieldID,a.Column4FieldID,a.Column5FieldID,a.fieldGroupOrderLabel };

C#Lazy Initialization && Race-to-initialize?

在阅读了LazyInitializer ,它是: 它提供了另一种初始化模式,它有多个线程竞争初始化。 这是一个示例: Expensive _expensive; public Expensive Expensive { get // Implement double-checked locking { LazyInitializer.EnsureInitialized (ref _expensive,() => new Expensive()); return _expensive; } } 问题#1 看着 : 为什么#A说它实现了双重检查锁定? 这只是一个获得的优势? 问题2 #B(lambda表达式)是否是线程安全的? 问题#3 所以我通过查看样本来搜索这个“竞赛初始化”的事情: volatile Expensive _expensive; public Expensive Expensive { get { if (_expensive == null) { var instance = new Expensive(); Interlocked.CompareExchange […]

在C#/ .NET 4.0中新的NoPIA和Type Equivalencefunction是否意味着不再需要Microsoft.mshtml.dll

我正在维护一个基于WPF的应用程序,它包含一个基于WinForms的WebBrowser控件,该控件基于IE Web浏览器控件。 当我们部署时,我们还必须提供Microsoft.mshtml.dll并为ClickOnce发布过程做一些自定义配置,以便让事情发挥作用。 我很好奇,使用C#4.0中新的NoPIA和Type Equivalencefunction以及动态类型function,我们可以期望如果我们升级它,我们可以删除对Microsoft.mshtml.dll程序集的依赖吗? 如果是这样,这不仅会减少我们部署的规模,还会简化我们的发布过程。 我的理解是,我们应该能够将通常自动生成的类型嵌入到COM类型的额外程序集中,例如Visual Studio的MapPoint控件。 我不知道这是否也适用于Microsoft.mshtml.dll ,甚至在最简单的情况下它是如何完成的。 如果有人可以解释这些新function对依赖COM互操作的项目的实际影响,特别是Microsoft.mshtml.dll程序集,那将对我有很大帮助。