Tag: c#

如何在XDocument.Load(字符串uri)上设置超时?

有没有办法在System.Linq.Xml.XDocument.Load(string uri)上设置超时? 或者我应该使用实现C#通用超时中描述的技术?

在Caliburn Micro和Castle Windsor中处理ViewModels

我在Caliburn-Micro Silverlight应用程序中使用Castle-Windsor作为我的容器。 我的ViewModel对象相当粗糙,因为它们调用WCF服务和其他一些东西。 因此,当窗口关闭时,我想调用container.Release(viewModel),以便Castle可以管理整个退役/处置过程,尊重配置的各种生命周期(如本文所述)。 在我的AppBootstrapper中,我重写了GetInstance,如下所示: protected override object GetInstance(Type serviceType, string key) { if (string.IsNullOrEmpty(key)) return container.Resolve(serviceType); return container.Resolve(key, serviceType); } 但我正在努力想出一个干净/优雅的方式来调用container.Release(viewModel) 。 似乎没有任何钩子可用于此。 在Caliburn Micro应用程序中释放从ViewModelLocator返回的ViewModel对象的最简单方法是什么?

如何降低Switch case语句的Cyclomatic复杂性

有一个具有开关盒的function,我们需要减少它的CC string data = string.empty; switch (value) { case “Less than 2 billion”: data = “0 – 2B”; break; case “2 billion to 10 billion”: data = “2B – 10B”; break; case “10 billion to 20 billion”: data = “10B – 20B”; break; case “20 billion to 50 billion”: data = “20B – 50B”; break; […]

与转换器的双向数据绑定不会更新源

我有一个数据绑定设置与转换器,以将一个笨拙的XML源转换为显示和编辑方便的内部类树。 一切都非常适合从XML源读取,但我有一段时间试图对内部类进行更改以传播回XML源。 这是使用网站的XAML: XmlSource是父数据绑定对象的CLR读写属性(不是DependencyProperty)。 它是从XSD生成的.NET类型。 SampleConverter实现了IValueConverter 。 调用Convert方法并返回非空数据,但从不调用ConvertBack方法。 SampleControl是一个UserControl,它封装了与Sample数据树的UI交互。 这是XAML看起来像这样: [… other stuff …] Sample属性是SampleControl代码中的DependencyProperty: public static readonly DependencyProperty SampleProperty = DependencyProperty.Register(“Sample”, typeof(SampleType), typeof(SampleControl), new PropertyMetadata(new PropertyChangedCallback(OnSampleChanged))); public SampleType Sample { get { return (SampleType)GetValue(SampleProperty); } set { SetValue(SampleProperty, value); } } private static void OnSampleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.NewValue != null) { […]

C#Entity Framework 4公共语言运行时检测到无效的程序错误?

如何调试/修复“公共语言运行时检测到无效程序”错误? 究竟到底是什么意思? 我有一个C#MVC 2 Web应用程序,可以部署到位于同一IIS 7.5 Web服务器(x64)上的两个网站。 一个是实时站点(使用Release配置部署),第二个是beta站点(使用仅为此项目创建的新Beta配置部署)。 这两个网站是: Default Website/my_app Beta/my_app 在测试网站上选择分页的采购订单时,它会抛出“检测到无效程序”exception。 在现场网站上运行完全相同的代码完美无缺。 为什么要这样做? 编辑:我在服务器上安装了Visual Studio,并找到导致问题的实际行和堆栈跟踪: var list = ObjectContext.ObjectSet.AsQueryable(); int totalRecords = list.Count(); var paged = list.Skip((page > 0 ? page – 1 : 0) * rows).Take(rows); 这是带有堆栈跟踪的exception消息: {System.InvalidProgramException: Common Language Runtime detected an invalid program. at System.Data.Entity.DynamicProxies.PurchaseOrderListVie_96479BFE9FA60F4C53137C56C1A1B2A11D90FF5AFFDC20383CC68E0A750792E3.set_Total(Decimal ) at lambda_method(Closure , Shaper […]

Wcf突然挂起(网络获取操作)

我读了很多关于客户端应该关闭与client.Close()连接的文章,所以不会超出WCF默认限制事实上,我有WCF WebGet操作,基本上只返回一个图像。 [ServiceContract(SessionMode = SessionMode.NotAllowed)] [ValidationBehavior] public interface IImagesService { [OperationContract(Name = “ImagesGet4”)] [WebGet(UriTemplate = “/Image/{partner}/{id}/{image}_{width}_{height}.jpg”)] Stream ImagesGet2(string partner, string id, string image, string width, string height); } 在这种情况下,客户端是浏览器,无论我使用wcf配置做什么都无济于事。 maxConnections,maxReceivedMessageSize,maxBytesPerRead和许多其他参数都被最大化,但仍然没有运气。 编辑:这是附加代码:由服务调用的ImageGet方法: public Stream ImagesGet(string partner, string id, string image, string width = null, string height = null) { WSData.EventLogs.MinimalEventSource.Log.ClientIp(“”); WSData.EventLogs.MinimalEventSource.Log.ServicePath(“”); WSData.EventLogs.MinimalEventSource.Log.Message( DateTime.Now + ” | […]

ThreadPool.QueueUserWorkItem的意外行为

请查看下面的代码示例: public class Sample { public int counter { get; set; } public string ID; public void RunCount() { for (int i = 0; i < counter; i++) { Thread.Sleep(1000); Console.WriteLine(this.ID + " : " + i.ToString()); } } } class Test { static void Main() { Sample[] arrSample = new Sample[4]; for (int i […]

为什么byte 不按预期方式串起来并返回工作

我有这个代码: Int32 i1 = 14000000; byte[] b = BitConverter.GetBytes(i1); string s = System.Text.Encoding.UTF8.GetString(b); byte[] b2 = System.Text.Encoding.UTF8.GetBytes(s); Int32 i2 = BitConverter.ToInt32(b2,0);; i2等于-272777233。 为什么不是输入值? (14000000)? 编辑:我想要做的是将它附加到另一个字符串,然后我使用WriteAllText写入文件

Radiobuttons作为一组在不同的面板

我正在使用C#开发WindowsForms应用程序。 我创建了一个带有一些面板的表单。 每个面板都有一个RadioButton 。 当我单击RadioButton ,然后单击其他一个时,两个都被选中。 我怎么能模拟所有的RadioButtons都在同一个组中,所以只能检查一个,其他的是未选中的? 当然,我可以控制每个RadioButton的checkedChanged事件……但有没有更好的解决方案? 提前致谢。

为什么我可以在它可能不可为空或可能不是对象的情况下测试null的generics?

在编写包含generics变量的类时 public class ServiceInvoker : IDisposable { private TService _Service; public ServiceInvoker() { _Service = Activator.CreateInstance(); } public void Invoke(Action action) { // CAN use null if (_Service == null) throw new ObjectDisposedException(“ServiceInvoker”); …. } public void Dispose() { // CAN’T use null this._Service = default(TService); } } 我注意到编译器允许我检查generics变量的null,但是,当然,不允许我将其设置为null,因此我们必须使用default(TService) 。 不应该编译器警告我,我使用null? 或者它是否使用拳击转换到一个对象来进行null测试? 我读到了关于generics的正确null评估 ,但我很想知道为什么,而不是如何。