为什么我无法从与设置文件相同的项目/程序集中为设置选择自定义类型?

fos*_*ndy 29 c# settings visual-studio-2010

我想设置一个应用程序设置属性,我在我的程序集中定义自定义枚举类型的类型(称之为A计划)

在设置浏览器中,我单击"浏览",然后显示"选择类型"对话框.

项目A中定义的类型似乎不适合我.然而,类型可以从A引用的其他项目中获得.

我似乎无法理解一个人无法使用基础项目中定义的类型,所以我认为我做错了什么.我已经尝试过建造,清洁,重建,重新启动而没有任何运气,所以我到底错过了什么?

编辑:截图http://tinypic.com/r/2ls8myb/7

Sea*_*ean 19

我试图在VS 2010(.net 3.5)中做同样的事情.事实证明,您可以使用"设置"设计器执行此操作.如上所述,UI完全有缺陷,但如果您在浏览窗口中手动输入枚举的完全限定名称,它将起作用.这样做的好处是不会修改生成的代码(*.Designer.cs),这总是很好的避免,因为当你这样做时,不能保证你的更改不会被覆盖.

PS - 如果枚举是公开的,这似乎才有效.

设置GUI:

在此输入图像描述

然后手动键入完全限定的类型名称:

在此输入图像描述

有一次我发誓我在Value列中看到了枚举值的下拉列表,但我从未见过它,你只需输入一个合适的值.

  • 如果这对任何人都不起作用,请尝试确保自定义类型是公共的. (2认同)

小智 5

我无法浏览到我的自定义类型.我可以通过在文本编辑器中打开Settings.settings文件并将设置添加到"设置"部分来添加我的自定义类型,如下所示:

<Setting Name="Options" Type="MyProject.MyOptions" Scope="User">
  <Value Profile="(Default)" />
</Setting>
Run Code Online (Sandbox Code Playgroud)

设置设计器在我打开时会抱怨,但我只是对该对话框回复"否",我可以在项目中使用自定义设置.


Ayk*_*vik 2

因为你自己的类型是不可序列化的。使其可序列化,并且您可以在设置中定义它。

  • 你好。我将类型标记为可序列化。清理并重建后,它仍然不可见。我可以问为什么其他程序集中未标记为可序列化的其他类型在类型浏览器中可见吗? (12认同)