小编CSt*_*vis的帖子

如何在我的VB.net应用程序中处理来自ac#web服务的区分大小写的类和方法

我正在开发一个VB.Net应用程序,需要访问我几乎肯定有C#后端的Web服务.至少,后端为我提供了仅按大小写区分的类,并且在许多类中,有些属性和方法仅按大小写区分.

VB.Net不区分大小写,并且它看到许多这些项目含糊不清.

我想到了一些处理这个问题的方法,但在我走上可能很难的道路之前,我想提出一些建议.

以下是我考虑过的一些方法.

  1. 修改生成的wsdl代码.由于xml输出不再符合Web服务要求,因此在响应时出现问题.我认为可能有一些属性可以用来覆盖它,但我不确定它们是什么.即便如此,这个Web服务也会经常更新,我不想每次刷新时都要重新修改服务.

  2. 创建一个csharp包装器项目,我用不同的名称公开底层类.主要通过继承.虽然这里的一个大问题是属性和方法的问题,这些问题和方法也只是按案例区分.

我确信在某些时候我可以让这些解决方案中的一个或另一个起作用,但如果有人有任何我没想到的更好的建议,我会很感激帮助.

谢谢

c# vb.net web-services case-sensitive case-insensitive

4
推荐指数
1
解决办法
626
查看次数

如何在.net 4.0 Web应用程序中进行程序集重定向

我正在使用asp.net 4.0开发基于Web的应用程序.

我在GAC中使用了一些dll,这些dll在旧的dll上有一些嵌入式依赖项.

我已配置程序集,以便依赖项重定向到我的计算机上正确版本的dll.这在3.5或更低版本的应用程序中完美地工作,但是,当我尝试基于相同的dll构建asp.net 4.0应用程序时,它会出现如下错误:

Could not load file or assembly 'ControlReferencedByMyDll, Version=2.0.0.0, 
Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. 
(Exception from HRESULT: 0x80131040) 
Run Code Online (Sandbox Code Playgroud)

我的ControlReferencedByMyDll版本是2.0.1.0版本.

我找不到.net 4.0的GAC配置实用程序,但在我的machine.config中(在.net 4.0的Framework和Framework64文件夹中)我添加了类似的内容:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="ControlReferencedByMyDll" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
      <bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

看看那是不是问题.

我甚至试图将applyTo ="v2.0.50727"属性添加到assemblyBinding以查看它是否有所不同.

但它似乎没有.

有没有其他人有这个问题?更重要的是,任何人都可以帮我解决这个问题吗?

asp.net gac .net-4.0 asp.net-4.0

2
推荐指数
1
解决办法
5989
查看次数