我已经开发了一个.NET 3.0应用程序,该应用程序是使用Clickonce部署的. 我想从完全信任转移到部分信任,以简化部署. 我在我项目的"安全性"选项卡中尝试了"计算权限"工具,答案很清楚: --------------------------- Microsoft Visual Studio --------------------------- This application requires full trust to run correctly. 但是,我无法弄清楚为什么需要完全信任.我试图将安全设置更改为"部分信任",但是该应用程序在启动时立即提高了安全性exception: System.Security.SecurityException {"Request failed.", Action= "System.Security.Permissions.SecurityAction.LinkDemand" at MyNameSpa
以下是关于 .net-3.5 的编程技术问答
ASP.NET 3.5在IIS 7下运行似乎不允许此设置. if (!EventLog.SourceExists("MyAppLog")) EventLog.CreateEventSource("MyAppLog", "Application"); EventLog myLog = new EventLog(); myLog.Source = "MyAppLog"; myLog.WriteEntry("Message"); 解决方案 这是Windows安全的一部分,因为Windows2003. 您需要根据hkey_local_machine \ system \ currentControlset \ services \ eventLog \应用程序在注册表中创建条目 @chegueverra的链接:不允许请求的注册表访问 其他解决方案 我已经从在这里(问题是Log4n
因此,这样做的明显方法是.. var handler = GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance); handler.Invoke(this, new object[] {e}); 我可以添加缓存以保持方法,但我想知道是否有完全不同且更快的方法? 解决方案 最快的方法是缓存一个键入的委托;如果您知道签名始终是: void PersonInstance.MethodName(string s); 然后您可以通过delegate.createdelegate创建Action: var action = (Action)Delegate.CreateDelegate( typeof(A
将对象转换为双重的最快方法是什么?我现在正在使用一块代码,其中读为: var d = double.TryParse(o.ToString(), out d); // o is the Object... 第一个想法是将其重写为 var d = Convert.ToDouble(o); 但实际上会更快吗? 编辑:除了运行配置文件(顺便说一句,我强烈建议 jetbrains dottrace )我跑了反射器,这帮助我来了使用以下内容(或多或少是代码的相关部分): if (o is IConvertible) { d = ((IConvertible)o).ToDouble(null); } else { d = 0d; } 原始代码double.TryParse()在140ms中执行.新代码在34ms中执行.我几乎可以肯定,这是我应该采取的优化路径,但是在我这样做之前,有人看到我的"优化"代码有问题吗?预先感谢您的反馈! 解决方案
在System.Linq命名空间中,我们现在可以扩展我们的 iEnumerable的让 any() and count() 扩展方法. 我最近被告知,如果我想检查一个集合中包含1个或更多项目,我应该使用.Any()扩展方法而不是.Count() > 0扩展方法,因为.Count()扩展方法必须遍历所有项目. 其次,某些集合具有属性(不是扩展方法),即Count或Length.使用这些更好,而不是.Any()或.Count()? 是/nae? 解决方案 如果您是从具有.Length或.Count的东西开始不需要通过GetEnumerator()/MoveNext()/Dispose() Any()要求检查非exprenty IEnumerable序列所需的序列. 仅对于IEnumerable,然后Any()将通常更快,因为它只需要查看一种迭代即可.但是,请注意,Count()的LINQ-to-Objects实现确实检查ICollection
我只是用贝宝(Paypal)击中了一堵巨大的砖墙.我创建了一个常规的C#项目,以使用其WSDL创建一些包装类别. 如果您创建一个非WEB项目,则添加WSDL的唯一选项是Web服务参考.这构建了与网络参考的相同代理类相同的一组. 所以我一直都在寻找此代理类列表中的正确界面(肥皂定位),而我一直在那里,我一直在告诉我们的PayPal点. . 我只能看到以下2个接口,这些接口出现在我身上,因为我没有看到PayPalAPIAASoapBinding,您可以在基于Web参考的服务中看到的PayPalAPIAASoapBinding参考: PayPalAPIAAInterfaceClient PayPalAPIInterfaceClient 所以我想出了哦,我可能已经创建了一个服务参考与Web参考,Web参考是Web项目中的一个选项.但是我不希望我的服务参考与我的网络项目紧密结合.这就是为什么我创建C#项目. 那么,服务参考与Web参考是什么?如果服务参考要给我一个
实际上我打算问以下问题: 用于可执行的可执行 目录在%PATH%中定义,如何 我发现以下哪个目录 发现它? 因为我需要使用process.run(...)从C#运行Excel,并且只是指出" Excel"工作正常:Windows似乎知道在哪里可以找到它.但是,我也需要提供适当的工作目录. ,但与此同时我发现Microsoft Office甚至不在%路径%中,Windows显然以另一种方式解决它. 那么我如何使用或模仿Windows的此功能来获取包含Excel的目录? 更新:除了Ruel的建议之外,是否有一种实现此目的的方法?我知道Windows能够以某种方式解决路径,因此我想在可能的情况下重复使用此功能. 有什么想法吗? 解决方案 从注册表中获取它:HKLM\SOFTWARE\Microsoft\Office\(VERSION)\Excel\InstallRoot对于VERSION,它可以是10.0 11.0等.
我正在研究一个程序,该程序将从CSV文件中解析出数据,并将其填充到XML文档的属性中.我正在使用的数据输入看起来像这样... E11*70/157*1999/101*1090*04.我想使用星号作为将其拆分为E11、70/157、1999/101等的引用,将其分解.因此,我可以将这些值插入XML的属性中.这是适合正则的情况吗?或者使用substring,我会更好地使用 *? 的索引 非常感谢您的帮助.我是编程世界的新手,并且发现这样的网站是非常宝贵的资源. 解决方案 您可以使用String.Split() string[] words = @"e11*70/157*1999/101*1090*04".Split('*'); 其他解决方案 我认为这应该解决您的问题: string content = @"11*70/157*1999/101*1090*04"; string [] split = words.Split('*'); 其他解决方案
我需要浏览JSON结构,因为我会使用XmlDocument. 导航XML 该结构尚不清楚,我需要在节点上迭代以解析一些数据. 这是可能的吗? 我知道我可以使用JavaScriptSerializer将其划分为已知类型,但事实并非如此,因为我可以收到任何有效的JSON. 我正在使用.NET 3.5(SP1),目前无法升级到4.0. 我升级到.NET 4.0使用动态类型(这是制作的代码非常棒) 解决方案 阅读本文: 它为您解释了一种将JSON解析到内部有字典的动态对象的方法. 那么,迭代词典对Linq会很好,不会吗? ----如果您在.net 3.5 ... ----;) 中 为什么不实施诸如" Todictionary"之类的扩展方法? 您可以接收JSON文本,以后用正则表达式和拆分属性和值分析到字典中,所有使用建议的扩展方法完成的所有内容. 一个如何工作的样本: IDictionary d
所以我要做的就是取一个工作号,看起来像该XXX123432,并计算条目中的数字,但不计算字母.然后,我想将数字数分配给一个变量,并使用该变量对工作编号提供检查以确定它们是否以有效的格式. 我已经弄清楚了如何执行检查,但是我不知道如何计数工作编号中的数字. 非常感谢您的帮助. 解决方案 使用linq: var count = jobId.Count(x => Char.IsDigit(x)); 或 var count = jobId.Count(Char.IsDigit); 其他解决方案 int x = "xxx123432".Count(c => Char.IsNumber(c)); // 6 或 int x = "xxx123432".Count(c => Char.IsDigit(c)); // 6 这两种方法之间的差异请参见 char.isnumber "> . 其他解决方案 也许是这样的东西? string j
我听说任务并行库可以在.NET 3.5项目中使用.这是正确的,如果是,我该如何使用?在.NET 4.0中,它位于System.Threading中,但是当我选择.NET 3.5作为Visual Studio 2010中的目标时,我无法访问Parallel和Parallel Loops之类的类. 解决方案 (遗产答案 - 似乎不再容易获得3.5的备份.) 您不能使用完整并行扩展,否... ...但是,如果您安装反应性扩展对于.net 3.5,带有平行扩展的版本,因此您可以使用它.我不知道PFX得到了多少支持,但我怀疑大多数人足够了. (博客文章中有一些细节,但这是从2009年开始的……我不知道2010年可能会或可能不会退出的任何变化.) 请注意,这也是不支持的 - 可能对爱好项目很好,但是如果我想商业使用PFX,我会升级到.NET 4. 其他解决方案 正如乔恩·斯基特(Jon Skeet)所提到的,Rx backported TPL to .NET 3.5
嗨,当用户单击特定的linkButton时,我需要删除问题. 因此,例如,如果Querystring为任何想法都将不胜感激. 解决方案 您有几个选择: 1)在您后面的代码中,只需将linkbutton的URL设置为较短地址,如果QueryString包含一个"用户ID"键: if (Request.QueryString["UserID"] != null) { this.LinkButton.PostBackUrl = "http://UserProfileManager.com"; } else { // other address } 2)将用户ID发送到隐藏的字段而不是Querystring中. 3)分开您的视图和编辑页面 - 将所有内容放入一个 *.aspx可能会带来更多的麻烦. 其他解决方案 您实际上无法从URL中删除Querystring.我的意思是说没有.remove()方法可用. 如果您仍然想这样做,则必须使用.
是否存在LINQ方法将给定集合分组为具有指定数量元素的亚组,例如Scala的grouped方法. 例如在Scala中,List(89, 67, 34, 11, 34).grouped(2)给出List(List(89, 67), List(34, 11), List(34)). 如果这种方法不存在,那么LINQ的方法是什么? 解决方案 是的,您可以.但是您可以争论它是否非常漂亮... Int64[] aValues = new Int64[] { 1, 2, 3, 4, 5, 6 }; var result = aValues .Select( ( x, y ) => new KeyValuePair( x, y ) ) .GroupBy( x => x.Value / 2 ) .Select( x => x.Select( y => y.Key ).ToList() )
我有一个system.generic.collections.list(mycustomclass)类型对象. 给定的整数变量pagesize和pagenumber,我只能查询mycustomclass对象的任何一页? 解决方案 如果您的Linq Query包含要显示的所有行,则可以使用此代码: var pageNum = 3; var pageSize = 20; query = query.Skip((pageNum - 1) * pageSize).Take(pageSize); 您还可以在对象上进行扩展方法,以便能够写 query.Page(2,50) 要获取第2页的前50个记录.如果您想要的话,信息在实心代码博客. 其他解决方案 嗨,有一个邪恶的东西叫做PageDlist,我在看Rob Conery屏幕时得到了我得到的. http://blog.wekeroad.com/2007/12/10/ASPNET-MVC-PAGEDLIS
我正在开发一个应用程序,该应用程序使用移动设备拍摄照片并使用网络服务发送.但是,在拍摄了4张照片后,我将在下面的代码中获得OutOfMemoryException.我尝试调用GC.Collect(),但也无济于事.也许这里有人可能会给我一个建议如何解决这个问题. public static Bitmap TakePicture() { var dialog = new CameraCaptureDialog { Resolution = new Size(1600, 1200), StillQuality = CameraCaptureStillQuality.Default }; dialog.ShowDialog(); // If the filename is empty the user took no picture if (string.IsNullOrEmpty(dialog.File
我需要嵌入图像作为电子邮件的一部分,在用户签名之后,而不是在电子邮件的末尾,因为如果我发送了大型电子邮件的答复,则嵌入式图像将在电子邮件链的底部 如何将图像嵌入电子邮件内容的一部分(不是指向外部图像的链接)? 如何在用户签名后添加此图像? 我与VSTO,VS2008 FWK3.5和Outlook 2007 一起工作 这是我的代码: public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { this.Application.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend); } private void
我有以下我的网络项目中其他人撰写的代码: StringBuilder sql = new StringBuilder(""); // Define sql sql.Append("SELECT title "); sql.Append("FROM MyTable "); sql.Append(string.Format("WHERE id = {0} AND Var = '{1}'", myId, myVar)); DataTable dtGroups = SqlHelper.GetDataTable(sql.ToString()); if (dtGroups.Rows.Count > 0) { foreach (DataRow dr in dtGroups.Rows) { return dr["title"].ToString(); }
Dapper如何帮助防止SQL注射?我正在测试不同的DAL技术,必须选择一种以确保我们的网站确保.我倾向于Dapper(http://code.google.com/p/dapper-dot-net/),但需要一些帮助学习安全. 解决方案 Dapper如何帮助防止SQL注射? 它使它确实非常非常易于进行完全参数化的数据访问,而无需任何一个串联输入.特别是因为您不需要跳过大量"添加参数,设置参数类型,请检查null ,因为Ado.net具有sucky null处理,RINSE/重复20个参数" ,通过使参数处理愚蠢方便.这也使将行变成对象的情况变得非常容易,避免了使用DataTable的诱惑...每个人都会获胜. 来自评论: 又一个... dapper实际上有什么帮助? 回答,让我们以MARC_S的答复中的示例,并以旧的方式写下它,假设我们必须从IS connection开始.那就是: List dogs = new List(