我在一个我忙的应用程序中使用了很多XML序列化.默认情况下,.Net只会将所有内容推到一行.
在序列化期间是否无法获得某些格式顺序.想要整洁,因为有时人们必须打开这些xml文件并阅读它们.
我想真正令人敬畏的是拥有正确的缩进和换行符.
提前致谢
我有一个C#while循环,在这个循环中继续发出与移动到循环中的下一个项目相同的行为吗?与"for循环"完全相同.
例如,请参阅以下代码示例中的任何问题?
while ((line = file.ReadLine()) != null)
{
string messageDownloadID = line ;
if (String.IsNullOrEmpty(messageDownloadID))
{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我正在构建一个具有名为Mailer的属性的辅助对象.实际上,Mailer可以是System.Net.Mail.MailMessage,也可以是Mono.System.Net.Mail.MailMessage.所以我最好只想要1个邮件声明.
例如,我不想要:
private Mono.Mailing.MailMessage MonoMessage = new Mono.Mailing.MailMessage();
private System.Net.Mail.MailMessage MailMessage = new System.Net.Mail.MailMessage();
Run Code Online (Sandbox Code Playgroud)
我会比较喜欢
object mailer;
Run Code Online (Sandbox Code Playgroud)
然后在构造函数中
switch (software)
{
case EnunInternalMailingSoftware.dotnet:
this.mailer = new System.Net.Mail.MailMessage();
break;
case EnunInternalMailingSoftware.mono:
this.mailer = new Mono.Mailing.MailMessage();
break;
}
Run Code Online (Sandbox Code Playgroud)
问题是邮件程序在设计时没有属性.所以我无法编译我的代码.
如何解决这个问题,我采取了正确的方法.提前致谢
给出以下LINQ where子句:
plannedPosition.Id是int类型?
pmArray的类型为int []
//Works
where
pmArray.Contains(plannedPosition.Id.Value)
//Does not work - will give a design time error
where
pmArray.Contains(plannedPosition.Id)
Run Code Online (Sandbox Code Playgroud)
如何使查询更加健壮以确保不会发生空运行类型异常?
为了简化问题:
我有一个可以返回NULL的选择.
例如:
-- if the customer has no fax then NULL will be returned
select customerFax from customers
Run Code Online (Sandbox Code Playgroud)
我如何检查此null,然后返回一个字符串值而不是NULL,我需要在报告中显示一些友好的消息.
所以如果为null - 然后返回一些字符串,否则从db返回值...
我希望这很容易理解 - 谢谢
我想找到给定一定数量的所有3的倍数,并找到余数.
例如:
给定数字10:3的倍数= {3; 6; 9} +余数= 1
给定数字11:3的倍数= {3; 6; 9} +余数= 2
到目前为止我的算法(但不是代码)是这样的:
有没有更好的方法来做到这一点,使用更少的代码?
编辑:还有2件事情,我只想找3 - 所以这可能是一个常数.还有任何小于3:2,1和0的数字 - 我不介意为此提供额外的逻辑.
我正在尝试以编程方式更新测试用例的区域。
我的代码似乎合乎逻辑,但是失败了:
Microsoft.TeamFoundation.WorkItemTracking.Client.dll中发生了类型为'Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException'的未处理异常
附加信息:TF400276:您试图为未打开或部分打开的工作项的字段设置值。您无法为未打开或未部分打开的工作项的字段设置值。
这是代码:
private static void Main(string[] args)
{
TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, false);
tpp.ShowDialog();
var tc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
tfsUri,
new UICredentialsProvider());
tc.EnsureAuthenticated();
var wiStore = tc.GetService<TestManagementService>();
var project = wiStore.GetTeamProject(tpp.SelectedProjects[0].Name);
SetAreaPathByTestSuiteID(project, 501);
}
private static void SetAreaPathByTestSuiteID(ITestManagementTeamProject project, int testSuiteID)
{
var testSuite = project.TestSuites.Find(testSuiteID).TestCases;
foreach (ITestSuiteEntry entry in testSuite)
{
ITestCase theCase = entry.TestCase;
theCase.Area = "NewAreaPath"; //Error thrown here
theCase.Save();
}
}
Run Code Online (Sandbox Code Playgroud) 给出以下方法:
public dynamic ConvertIt(dynamic source, Type dest)
{
return Convert.ChangeType(source, dest);
}
Run Code Online (Sandbox Code Playgroud)
如何获得dest的实际原始类型?
我希望有类似的东西:
if (dest is bool)
Run Code Online (Sandbox Code Playgroud)
但是我得到一个设计时间警告,类型条件永远不会满足,这很明显因为dest总是Type.
我希望能够得到一个类型(原语)的枚举,一个dest的属性.
我在静态类中有一个静态方法,它可以生成随机字符串,如下所示:
public static class DataGenerator
{
public static string GenerateRandomString(int length)
{
const string Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
return new string(
Enumerable.Repeat(Chars, length)
.Select(s => s[random.Next(s.Length)])
.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
当我从同一个调用函数多次调用此方法时,它似乎缓存生成的字符串.
以下是一个用法示例:
var item = new CodeDescActivePo()
{
Active = true,
Code = DataGenerator.GenerateRandomString(10),
Description = DataGenerator.GenerateRandomString(10)
};
Run Code Online (Sandbox Code Playgroud)
请注意,有两个对GenerateRandomString的调用,我希望有两个唯一的随机数,在这种情况下,代码和描述总是相同的.
为什么GenerateRandomString每次都不会生成一个新的随机数?
我有一个像这样定义的泛型类:
public abstract class StationProperty{}
public class StationProperty<T>
{
public int Id { get; set; }
public T Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个如下所示的列表:
var props = new List<StationProperty>();
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都那么好,除非我尝试将一个项目添加到列表中,如下所示:
var prop = new StationProperty<bool>(39, true);
// var prop = new StationProperty<int>(39, 100); another example
props.Add(prop);
Run Code Online (Sandbox Code Playgroud)
它会引发设计时错误:参数类型<bool>不能分配给参数类型X.
我的想法是拥有一个强类型值(不使用对象)的值列表,然后能够使用泛型推断它们的类型.