我想将类序列化为XML,为其分配XML属性.片段:
[XmlType(TypeName = "classmy")]
public class MyClass2 : List<object>
{
[XmlAttribute(AttributeName = "myattr")]
public string Name { get; set; }
}
public class MyConst
{
public MyConst()
{
MyClass2 myClass2 = new MyClass2 { 10, "abc" };
myClass2.Name = "nomm";
XmlSerializer serializer = new XmlSerializer(typeof(MyClass2));
serializer.Serialize(Console.Out, myClass2);
}
}
Run Code Online (Sandbox Code Playgroud)
但是生成的XML看起来像这样
<?xml version="1.0" encoding="IBM437"?>
<classmy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anyType xsi:type="xsd:int">10</anyType>
<anyType xsi:type="xsd:string">abc</anyType>
</classmy>
Run Code Online (Sandbox Code Playgroud)
一切都很好,唯一的例外是myClass2.Name没有被序列化.我期待着一些东西
<classmy myattr="nomm" [...]>[...]</classmy>
Run Code Online (Sandbox Code Playgroud)
...为什么不是序列化的,它怎么可能?
我想为生成的代码中的属性生成别名.到目前为止我能做的就是:
partial class Purchase
{
public User Customer
{
get
{
return this.User;
}
set
{
this.User = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否还有其他方法可以在C#中定义别名.在Purchase由LINQ到SQL生成的类
我知道关于排列列表的问题有几个类似的措辞问题,但它们似乎并没有真正解决我正在寻找的问题.我知道有办法做到这一点,但我画了一个空白.我有一个类似于这种格式的平面文件:
Col1|Col2|Col3|Col4|Col5|Col6
a|b,c,d|e|f|g,h|i
. . .
Run Code Online (Sandbox Code Playgroud)
现在就是诀窍:我想创建这些行的所有可能排列的列表,其中行中以逗号分隔的列表表示可能的值.例如,我应该可以IEnumerable<string>将上面的代表表示为行:
IEnumerable<string> row = new string[] { "a", "b,c,d", "e", "f", "g,h", "i" };
IEnumerable<string> permutations = GetPermutations(row, delimiter: "/");
Run Code Online (Sandbox Code Playgroud)
这应该生成以下字符串数据集合:
a/b/e/f/g/i
a/b/e/f/h/i
a/c/e/f/g/i
a/c/e/f/h/i
a/d/e/f/g/i
a/d/e/f/h/i
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎优雅地适合递归方法,但显然我有一个星期一的坏情况,我不能完全围绕如何接近它.一些帮助将不胜感激.应该是GetPermutations(IEnumerable<string>, string)什么样的?
我试图在SQL服务器中恢复.BAK但收到以下错误:
Msg 3241,Level 16,State 7,Line 1设备'c:\ glyn\JA.bak'上的媒体系列格式不正确.SQL Server无法处理此媒体系列.消息3013,级别16,状态1,行1 RESTORE DATABASE异常终止.
我尝试使用2012年,2008年甚至2005年进行恢复,但没有任何作用,我使用了以下查询并通过任务>>备份但没有任何作用,这是我的SQL:
RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'
Run Code Online (Sandbox Code Playgroud)
有没有人有什么建议?我已经读过bak可能已损坏,它是由另一位正在研究该项目的DVD开发人员发送给我的.
如何在声明期间初始化成员变量并创建getter/setter简写?是否可以或者必须使用构造函数来赋值?
例如,我想做类似的事情
public class Money
{
public int dollars = 200 {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
要么
public int dollars = 200;
dollars
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud) 我试图让我的应用程序只在计算机上运行一次,我的应用程序需要通信到web服务,所以让它运行不止一次是不好的,目前我正在使用Mutex:
MyMsg := RegisterWindowMessage('My_Unique_App_Message_Name');
Mutex := CreateMutex(nil, True, 'My_Unique_Application_Mutex_Name');
if (Mutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then
exit;
Run Code Online (Sandbox Code Playgroud)
目前这可以限制每个用户的1个应用程序实例,但我的应用程序正在Windows服务器环境中使用,其中有20个用户同时进入,所以我需要严格要求每个服务器只运行一次,我的我试图做的是声明Mutex作为全局互斥,但我没有这样做,当我做下一个代码它根本不起作用.
MyMsg := RegisterWindowMessage('My_Unique_App_Message_Name');
Mutex := CreateMutex(nil, True, 'Global\My_Unique_Application_Mutex_Name');
if (Mutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then
begin
exit
Run Code Online (Sandbox Code Playgroud)
我做错了什么?有没有其他可靠的方法不让我的应用程序的第二个实例运行?
我有一个来自WPF扩展工具包的DataGrid,其中有几列类似于以下内容:
<xcdg:Column Title="Description" FieldName="Description" Visible="{Binding Source={x:Reference filterDescription}, Path=IsChecked, Converter={StaticResource FilterVisibility}}" />
Run Code Online (Sandbox Code Playgroud)
问题是这些列中的每一列都显示Visibility属性的"对象引用未设置为对象实例"的设计时错误.Intellisense看到Visibility属性就好了.一切都是功能性的,所以它并没有真正伤害任何东西,但是我有26个这样的伪造错误,它有时会让真正的问题变得痛苦.
无论如何要么使Visual Studio 2012关闭这些错误,或者某种程度上说服IDE确认它实际上是智能感知的这个属性是好的吗?我错过了一些特殊的设计时参考吗?
我正在尝试使用Java中的Scanner类扫描负数.
我有这个输入文件:
1
-1,2,3
我的代码如下:
Scanner input = new Scanner(new File("data/input.txt"));
int i = input.nextInt();
input.useDelimiter(",|\\s*"); //for future use
int a = input.nextInt();
System.out.println(i);
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
我的预期输出应该是
1
-1
相反,我得到一个错误(类型不匹配).
当我做
String a = input.next();
Run Code Online (Sandbox Code Playgroud)
代替
int a = input.nextInt();
Run Code Online (Sandbox Code Playgroud)
我不再得到错误而是得到了
1
-
有没有办法从单个文件夹调试多个文件?我原本以为我可以在.settings文件夹中创建多个启动文件并选择我想要执行的文件,但这似乎不起作用.它似乎只坚持'launch.json'.