Tag: .net

无法使用带有GET请求的动词类型发送内容正文

我目前正通过WebApi收到请求,并试图将其重新发送到另一个站点。 目标是通过示例接收请求: http:// localhost:9999 / #q = test 。 然后将其转发到真实网站:(我的测试我设置了google.com) http://google.com/#q=test 我有以下代码: protected override async Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { string url = request.RequestUri.PathAndQuery; UriBuilder forwardUri = new UriBuilder(_otherWebSiteBase); forwardUri.Path = url; if (request.Method == HttpMethod.Get) { //request.Method = HttpMethod.Post; } request.RequestUri = forwardUri.Uri; request.Headers.Host = forwardUri.Host; return await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);//_client is an HttpClient […]

希望Autofac不注册任何具有多个实现的接口

所以我目前正在为我们公司测试Autofac。 我们想要遵守以下规则: 如果一个接口只实现了一次,那么使用builder.RegisterAssemblyTypes自动添加它(见下文)。 否则,我们需要确保手动编写将决定哪个实现是“默认”实现的规则。 我有以下代码: var builder = new ContainerBuilder(); builder.RegisterAssemblyTypes(Assembly .Load(“Lunch.Service”)).As(t => t.GetInterfaces()[0]); builder.RegisterType() .As().SingleInstance(); builder.RegisterModule(new DestinationModule()); builder.RegisterType() .As().PropertiesAutowired(); 现在,它正在工作,但它决定了第一个实现是哪个,并将自动创建。 如果我们不手动创建“规则”,我们希望将其设为手动过程并抛出错误。 这可能吗?

如何将另一个结构隐式转换为我的Type?

因为它是MyClass x = 120; ,是否可以创建这样的自定义类? 如果是这样,我该怎么办?

获取计算机的MAC地址

我想使用c#访问计算机的mac地址。 我使用以下代码访问mac地址,但此代码中存在一些问题。 代码1 foreach( NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces() ) { if( nic.OperationalStatus == OperationalStatus.Up ) { Console.WriteLine( nic.GetPhysicalAddress().ToString() ); checkMAC = nic.GetPhysicalAddress().ToString(); break; } } 代码2 ManagementClass mc = new ManagementClass(“Win32_NetworkAdapterConfiguration”); ManagementObjectCollection moc = mc.GetInstances(); string MACAddress = String.Empty; foreach (ManagementObject mo in moc) { if (MACAddress == String.Empty) // only return MAC Address from […]

如何将System.Data.DataSetExtensions的引用添加到Web站点ascx.cs文件?

我们正在使用Web站点项目并尝试引用System.Data.DataSetExtensions 。 (使用Web应用程序会更好;但技术主管有她的理由。) 这是我们尝试过的: 找到assembly路径。 打开Visual Studio命令提示符并运行sn.exe -T “full\path.dll” 根据公钥标记将以下内容添加到web.config中。 web.config> system.web> 完整路径是C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.DataSetExtensions.dll 尽管如此,当我们using System.Data.DataSetExtensions添加到代码隐藏文件时,msbuild仍然抱怨。 是什么赋予了? 我们如何解决这个问题?

在TPL Dataflow中,是否可以在创建块之后但在使用之前更改DataflowBlockOptions?

……让它生效吗? 我想推迟设置ExecutionDataflowBlockOptions.SingleProducerConstrained属性,直到我准备将网络链接在一起。 (因为,我想用它们的语义分开创建块,用它的语义将网络链接在一起。) 但据我所知,只能在创建块时设置ExecutionDataflowBlockOptions(例如,对于TransformBlock,TransformManyBlock等,您将其传递给构造函数,否则它不可见)。 但是……我没有注意到这些物业有公共制定者。 所以…我可以用ExecutionDataflowBlockOptions的占位符实例创建块并保持它以便以后我可以设置SingleProducerConstrained = true,如果我愿意,将块链接在一起(并且它将生效)? (顺便说一句,有没有什么方法可以判断SingleProducerConstrained除了测量吞吐量之外是否有任何影响?) 更新: @ i3amon在他的回答中正确指出这是无法完成的,因为数据流块会克隆您传入的DataflowBlockOptions并使用它。 但无论如何,我使用内部数据结构,我可以通过reflection和动态访问。 我把它放在下面的答案中。

HRESULT:0x8004D00E使用TransactionScope – C#

当我尝试在连接到SQL Server 2000的Windows Server 2003 Standard Edition SP1计算机上运行C#WinForms应用程序时,我收到以下错误,转换WinForms应用程序中的数据并将转换后的数据插入到SQL Server 2005应用程序中。 我使用SSPI连接到每个数据库。 代码包含在TransactionScope块中: System.TimeSpan TransactionTimeOut = new TimeSpan(0, 40, 0); using(TransactionScope Scope = new TransactionScope(TransactionScopeOption.RequiresNew, TransactionTimeOut)) { try { //meat of transaction… } catch(Exception ex) { throw ex; } Scope.Complete(); } 错误消息: 例外:事务已被隐式或显式提交或中止。 内部exception:事务已被隐式或显式提交或中止(HRESULTexception:0x8004D00E) 任何人都知道可能导致此问题的原因是什么?

Linux上的.net核心应用程序目标.net框架4.5.2

我想更多地了解点网核心支持。 我的基本理解是,如果我想在Linux上运行.net应用程序,那么需要构建.net核心和目标netcoreapp1.0框架来保证这一点。 1)我假设上述假设是正确的? 2)当我在线阅读各种文章时,例如关于在.net核心应用程序中引用退出.net框架项目的文章( https://www.hanselman.com/blog/HowToReferenceAnExistingNETFrameworkProjectInAnASPNETCore10WebApp.aspx )如果我这样做,大概是该应用程序只能在Windows而不是Linux上运行? 3)在以下文章中: https : //blogs.msdn.microsoft.com/cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks-and-what-the-target-framework -monikers-tfms-are-about /在运行.net运行4.5.2选项( dotnet run -f NET452 )的dotnet run -f NET452 ,提到: 如果这个应用程序在.NET核心平台上运行,让我们说在Linux机器或Mac上,这个代码将不会被执行,但该应用程序仍将在Linux或MacOS上运行。 运行和不执行之间的区别是什么? 如果我的初步理解是正确的,那么通过在Linux上运行.net 4.5.2选项,我不希望应用程序根本不运行。 欣赏那里的几个问题,但真的想要了解更多.net核心。

如何检查combobox下拉列表是否显示为up或down?

我有从comboboxinheritance的控制(实现C#,。Net 2.0)。 它有过滤和其他东西。 为了保持UI正确,当过滤期间的项目数量下降时,下拉列表会更改其大小以适合剩余的项目数(由NativeMethods.SetWindowPos(…)完成)。 有没有办法检查下拉列表是否显示为向上或向下(字面意思) – 不检查它是否打开,它是打开的,但在哪个方向,向上或向下? 欢呼,jbk

Microsoft ReportViewer 2012参考

我在%WINDIR%/ Assembly中有Microsoft.ReportViewer.WinForms版本11.0.0.0,publickeytoken 89845dcd8080cc91。 实际文件版本是11.0.3412.0。 我安装了2012 ReportViewer可再发行组件。 我去添加对我的.NET 4.0 C#项目的引用,唯一可用的选择是10.0.0.0,文件版本10.0.40219.329。 所以我浏览到%PROGRAMFILES%(x86)/ Microsoft Visual Studio 12.0 / ReportViewer / Microsoft.ReportViewer.WinForms.dll,它显示为11.0版本,但添加时csproj文件引用10.0版本: False C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer\Microsoft.ReportViewer.WinForms.dll 当我构建并部署到32位机器时,dll的使用提示来自丢失的DLL – 10.0.0.0 – 为什么它不会拿起2012版本?