草庐IT

input_buffer_name

全部标签

c# - Protocol Buffer 从原始消息中检测类型

是否可以检测原始ProtocolBuffer消息的类型(在byte[]中)我遇到这样一种情况,端点可以接收不同的消息,我需要能够在反序列化之前检测到类型。我正在使用protobuf-net 最佳答案 您无法单独检测类型,因为protobuf规范不会为此向流添加任何数据;但是,根据上下文,有多种方法可以简化此过程:联合类型(如Jon所述)涵盖了一系列场景继承(特定于protobuf-net)可以是通用的——您可以有一个基本消息类型,以及任意数量的具体消息类型可以使用前缀来表示传入类型最后一种方法在原始TCP流的情况下实际上非常有值(v

c# - 委托(delegate) : Method name expected error

我正在尝试让以下简单的委托(delegate)示例正常工作。根据我从中获取的一本书应该没问题,但我得到了一个Methodnameexpected错误。namespaceTestConsoleApp{classProgram{privatedelegatestringD();staticvoidMain(string[]args){intx=1;Dcode=newD(x.ToString());}}}有什么帮助吗? 最佳答案 删除():Dcode=newD(x.ToString);您想指定方法,而不是执行。

c# - 专用于字节流的FIFO/Queue buffer

是否有任何.NET数据结构/类组合允许将字节数据附加到缓冲区的末尾,但所有查看和读取都是从头开始的,从而在我读取时缩短了缓冲区?MemoryStream类似乎完成了其中的一部分,但我需要为读取和写入维护不同的位置,并且它不会在读取数据后自动丢弃数据。已在对thisquestion的回复中发布了答案这基本上是我正在尝试做的,但我更喜欢我可以在同一进程的不同组件中进行异步I/O的操作,就像普通管道甚至网络流一样(我需要过滤/处理数据优先)。 最佳答案 我将发布一次我为工作项目编写的一些逻辑的精简副本。这个版本的优点是它与缓冲数据的链接列

c# - "An assembly with the same simple name has already been imported"没有重复引用的错误

我收到以下错误:errorCS1704:Anassemblywiththesamesimplename'Interop.xxx.dll,Version=1.0.0.0,Culture=neutral,PublicKeyToken=nullhasalreadybeenimported.Tryremovingoneofthereferencesorsignthemtoenableside-by-side.我所看到的一切都表明我引用了两个同名的程序集,我需要删除其中一个。但是,我已经检查过并且只引用了一次。这也仅在我使用msbuild从我的开发箱上的命令行构建时发生。如果我通过VisualS

c# - Image.Save 崩溃 : {"Value cannot be null.\r\nParameter name: encoder"}

我正在尝试将图像保存到MemoryStream中,但在某些情况下会失败。代码如下:以下代码成功:Imageimg=Bitmap.FromStream(fileStream);MemoryStreamms=newMemoryStream();img.Save(ms,img.RawFormat);//Thissucceeds.以下代码失败:Imageimg=Bitmap.FromStream(fileStream);Imagethumb=img.GetThumbnailImage(thumbWidth,thumbHeight,null,System.IntPtr.Zero);MemoryS

c# - 具有路由属性的模糊 Controller 名称 : controllers with same name and different namespace for versioning

我正在尝试添加API版本控制,我的计划是为不同命名空间中的每个版本创建一个Controller。我的项目结构是这样的(注意:每个版本没有单独的区域)Controllers||---Version0||||-----ProjectController.cs||-----HomeController.cs||---Version1||-----ProjectController.cs|-----HomeController.cs我正在为路由使用RoutingAttribute。因此,Version0中的ProjectController具有路由功能namespaceMyProject.Co

c# - 在 WPF 中获取 "<Property Name> was already registered by "<控件名称>"错误

我在WPF中有一个用户控件,它绑定(bind)到一个依赖属性。当我尝试编译应用程序时,出现“属性名称”已由“控件名称”注册的错误,设计器显示“无法创建“用户控件”的实例”错误。这是我的简单控件的样子:ExampleUserControl.xaml:ExampleUserControl.xaml.cs:publicpartialclassExampleUserControl:UserControl{publicDependencyPropertySomeStringValueProperty=DependencyProperty.Register("SomeStringValue",ty

c# - 可以找到 Entity Framework 迁移 "No connection string named ' DefaultConnection ......”

过去几个月我一直在使用MVC5和EntityFramework6。我已将我的主要模型/业务逻辑和“迁移”分离到一个单独的程序集,并在我的Web应用程序中引用它。迁移一直运行良好。今天我运行“更新数据库”,我得到“在应用程序配置文件中找不到名为‘DefaultConnection’的连接字符串。”“DefaultConnection”仍在我的web.config文件中。如果我将该部分复制到迁移所在的项目,它将再次运行。如果我删除该部分,它会抛出该错误。我不知道可能发生了什么变化。从昨天开始我唯一做的就是运行“磁盘清理”来清理我硬盘​​上的空间。 最佳答案

c# - 从 wcf 绑定(bind) transferMode 从 "Buffered"更改为 "Streamed"是否被视为客户端的重大更改?

我有一个WCF服务端点,它通过流提供二进制文档。端点看起来像这样:publicStreamGetFile(intfileId){...}此服务端点的basicHttpBinding被错误地配置为使用TransferMode="Buffered"。服务端点当前由我无法控制的集成方使用。由于缓冲传输模式的内存消耗问题,我想将其更改为TransferMode="Streamed"。我能否安全地对服务绑定(bind)配置进行此更改,并期望这不会对任何集成方造成任何影响? 最佳答案 据我所知,WCF流模式传输是在客户端选择加入的,这意味着即使

c# - 抛出 FaultException 时 WCF 错误 "The size necessary to buffer the XML content exceeded the buffer quota"

我试图在WCF应用程序的服务器端抛出FaultException。我使用DTO作为此异常的有效负载。从某个时候(对于那种大对象)我开始在客户端收到“缓冲XML内容所需的大小超出了缓冲区配额”异常。所有绑定(bind)消息大小参数和maxDepth都设置为最大的值以排除怀疑。有人遇到过这个问题吗?网上好像还没有解决办法。设置没有帮助。 最佳答案 问题出在ClientRuntime的“MaxFaultSize”参数中,默认值为65535,因此默认情况下您无法在WCF的错误中传递大负载。要更改此值,您应该像这样编写自定义EndpointB