草庐IT

store-it-all

全部标签

c# - 通过自定义结构类型验证原始 .NET 值类型 : Is it worth the effort?

我正在尝试通过将原始.NET值类型包装在自定义struct中来使原始.NET值类型更加类型安全和更加“self记录”。但是,我想知道在现实世界的软件中是否真的值得付出努力。(That"effort"canbeseenbelow:Havingtoapplythesamecodepatternagainandagain.We'redeclaringstructsandsocannotuseinheritancetoremovecoderepetition;andsincetheoverloadedoperatorsmustbedeclaredstatic,theyhavetobedefin

c# - TaskCompletionSource 抛出 "An attempt was made to transition a task to a final state when it had already completed"

我想使用TaskCompletionSource来包装MyService这是一个简单的服务:publicstaticTaskProcessAsync(MyServiceservice,intparameter){vartcs=newTaskCompletionSource();//EverytimeProccessAsynciscalledthisassignstoCompleted!service.Completed+=(sender,e)=>{tcs.SetResult(e.Result);};service.RunAsync(parameter);returntcs.Task;}

c# - 通过 LINQ 创建 XML 文档,添加 xmlns,xmlns :xsi to it

我尝试通过LINQtoXML创建GPXXML文档。除了向文档添加xmlns、xmlns:xsi属性外,一切都很好。通过尝试不同的方式,我得到了不同的异常。我的代码:XDocumentxDoc=newXDocument(newXDeclaration("1.0","UTF-8","no"),newXElement("gpx",newXAttribute("creator","XMLtester"),newXAttribute("version","1.1"),newXElement("wpt",newXAttribute("lat","7.0"),newXAttribute("lon",

c# - 公开课 - "is inaccessible due to its protection level. Only public types can be processed."

我正在做一个测试项目来了解对象的XML序列化,但我遇到了一个奇怪的运行时错误:namespaceSerializeTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidserializeConnection(Connconnection){XmlSerializerserializer=newXmlSerializer(typeof(Conn));TextWritertextWrit

c# - 装箱和拆箱 : when does it come up?

所以我明白了什么是装箱和拆箱。它什么时候出现在现实世界的代码中,或者在什么例子中它是一个问题?我无法想象做这样的事情:inti=123;objecto=i;//Boxingintj=(int)o;//Unboxing...但这几乎可以肯定是过于简单化了,我什至可能在不知不觉中进行了装箱/拆箱。 最佳答案 与泛型之前相比,现在问题不大了。现在,例如,我们可以使用:Listx=newList();x.Add(10);inty=x[0];根本不需要装箱或拆箱。以前,我们有:ArrayListx=newArrayList();x.Add(1

c# - 谷歌 API Oauth2 : Only one refresh token for all users?

我正在使用OAuth2身份验证,并且我有一个包含多个用户的CMS,每个用户都有自己的配置文件。碰巧我们公司有一个Google帐户可以访问多个Analytics帐户。对于每个使用CMS的用户,我使用不同的用户名连接到GoogleAnalyticsAPI,每个用户的token都保存在数据库数据存储中。问题是,如果一个用户断开连接并撤销他的token,使用同一Google帐户的其他用户也将无法访问AnalyticsAPI,这是没有意义的。编辑:经过进一步调查,我发现当第一个用户进行身份验证时,保存在数据存储中的token包含“refresh_roken”和“access_token”。但是,

c# - Azure 网站不断抛出错误 "An attempt was made to access a socket in a way forbidden by its access permissions"

我有一个网站在专用的Azure计划中作为Web应用程序运行。它连接到Redis、SQLAzure和MongoDB后端。该网站现在已经运行良好数周,然后没有任何新代码,我现在收到很多套接字异常,如下所示。试图以访问权限禁止的方式访问套接字。网站在连接到Redis、SQLAzure和MongoDB时间歇性地出现错误,这毫无意义。我更改了网站的定价层,这会将网站从一个虚拟机转移到幕后的另一个虚拟机,错误消失了几天又回来了。我刚刚将站点从S3更改为S2(使其更小),它们已经消失,但我不知道会持续多久。我该如何解决?Azure是否限制站点的套接字数量?Azure中的某个站点是否存在某些可能导致此

c# - 生产中的 Azure SDK 2.2 : Could not load file or assembly 'msshrtmi' or one of its dependencies. 系统找不到指定的文件

我已经在StackOverflow和其他网站的其他几个线程上读到过这个问题。其他解决方案都没有解决我的问题,而且大多数都已过时,引用了旧版本的AzureSDK。我有一个典型的Azure网站角色部署到Azure,它使用Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener来记录跟踪消息。发生跟踪时,看起来好像DiagnosticMonitorTraceListener正在使用RoleEnvironment类,该类又会尝试加载显然不存在的msshrtmi.dll.这是记录到Azure文件系统的堆栈跟踪的一部分:[F

C# Windows 8 Store (Metro, WinRT) 字节数组到 BitmapImage

我正在开发一个将滤镜应用于图像的Windows8Metro应用程序。我有该应用程序的Web版本并想移植它。但众所周知,WinRT并不具备.NET提供的所有优点:/目前我正在字节数组上应用过滤器,我想保持这种状态,因为它非常快!因此,在过去的几天里,我一直在寻找将StorageFile转换为byte[],然后将byte[]转换为BitmapImage的方法。到目前为止,我已经设法完成了第一个(StorageFile到byte[])。这是我的做法:publicasyncTaskImageFileToByteArray(StorageFilefile){IRandomAccessStream

c# - 简易喷油器 : Registering a type with constructor argument that's based on its parent

我目前正在从我的项目中删除Ninject,并转而使用SimpleInjector,但有一件事我无法正常工作。对于我的日志记录,在注册服务时,我以前能够将参数传递到我的日志记录类中_kernel.Bind().To().WithConstructorArgument("name",x=>x.Request.ParentContext.Request.Service.FullName);我正在寻找一种在SimpleInjector中重新创建它的方法。到目前为止,除了这个,我还有其他所有工作。通过执行以下操作,我可以使日志记录正常工作,尽管没有显示正确的记录器名称:_container.Re