gpt4 book ai didi

c# - 如何在 svcutil 中重用所有程序集类型并指定字典集合类型?

转载 作者:行者123 更新时间:2023-11-30 18:46:34 26 4
gpt4 key购买 nike

我试图通过命令行生成我的解决方案的服务引用,所以我一直在尝试使用 svcutil 来完成。我有两个问题。

  1. 在 Visual Studio 2012 中,我可以指定 System.Array 集合类型和 System.Collections.Generic.Dictionary 字典集合类型。 svcutil中只有一个collectionType选项,如何指定两种集合类型?

  2. 在 Visual Studio 2012 中,我可以选择在引用的程序集中重用类型。然后我可以选择在所有引用的程序集中重用类型。有没有一种方法可以指示 svcutil 重用解决方案中的所有类型,或者甚至有一种方法可以让我列出多个程序集以重用其中的类型?

额外细节:我的项目是一个 silverlight 项目。我有很多程序集,但我不确定重用了哪些类型以及在何处重用。字典类型转换为字典,所有其他集合类型转换为 System.Array。

这是我目前使用命令行而不是 Visual Studio 2012 重现我的 Reference.cs 文件的尝试:

SvcUtil.exe /target:code "myMexServiceAddress" /language:cs /out:Reference.cs /noConfig /async /collectionType:System.Array /serializable /serializer:Auto /enableDataBinding /namespace:*,myNamespace

编辑:我目前正在通过 Visual Studio 2012 成功生成我的服务引用,但我需要能够通过命令行生成它们。这是我未能做到的地方。

UPDATE1: 所以我解决了问题 2。您只需将/r:assembly.dll/r:assembly2.dll/r:assembly3.dll 添加到 svcutil 中,使其重用类型那些大会。必须手动将路径添加到所需的所有程序集有点烦人,但没有办法让它自动使用项目引用中的所有类型,就像在 Visual Studio 中一样。

更新 2:要在代码中生成 Silverlight 5 服务引用和可移植库服务引用,您需要使用 SLSvcUtil.exe 而不是 SvcUtil.exe:

SLSvcUtil.exe "myMexServiceAddress" /out:Reference.cs /language:cs /enableDataBinding /namespace:*,myNamespace /serializer:Auto /config:ServiceReference.config

我仍然不知道如何指定两种类型的集合,一种用于字典,一种用于其他集合类型。有什么想法吗?

最佳答案

以防万一有人在 2022 年寻找答案。新工具是 dotnet-svcutil

安装:

dotnet tool install --global dotnet-svcutil

要使用多个集合,请多次使用 --collectionType 或更简单的 -ct

dotnet-svcutil "myMexServiceAddress" -ct System.Collections.Generic.List`1 -ct System.Collections.Generic.Dictionary`2

Postdata:如果在 Powershell 上运行,将 `1 转义为 ``1

关于c# - 如何在 svcutil 中重用所有程序集类型并指定字典集合类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20430216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com