我有一些看起来像这样的HTML.
<li class="t-item t-first">
<div class="t-top">
<span class="t-icon t-plus"></span>
<span class="t-in">Offshore</span>
</div>
<input type="hidden" value="41393" name="itemValue" class="t-input">
</li>
Run Code Online (Sandbox Code Playgroud)
HTML是Telerik创建的树视图中的单个项目.这里的真实数据是"离岸"的id为"41393".
从Telerik代码我得到带有"t-in"类的span-element,但是我无法从中获取ID值.如何使用jQuery查找隐藏输入类型的值?
我对解决方案中项目之间的引用有疑问.我之前的大多数应用程序在解决方案中只有一个或两个项目,但这次我想进一步划分应用程序.
我现在正在Visual Studio 2008中启动一个新的解决方案,并创建了几个基础项目来划分我的应用程序的各个部分.
但是目前我只是随心所欲地创建不同的项目,并在需要时在它们之间创建引用.有时我最终会遇到两个项目需要互相引用的情况,但这是不允许的,因为它会导致循环依赖.
在创建不同的项目并将它们链接在一起时,是否应该记住任何规则/提示/模式?
我应该从内部开始,然后出去吗?让"核心"项目参与所有外部项目,或者从外部和独立项目都引用"核心"的地方?或者我在两个项目中开展业务的第三个选项,他们都引用了第三个项目?
我正在尝试创建一个类,我可以序列化以生成以下XML:
<chart palette='1'>
<categories>
<category label='2001' />
<category label='2002' />
Run Code Online (Sandbox Code Playgroud)
..等等
我有一个类看起来像这样的类:
[XmlRoot("chart")]
public class Chart
{
[XmlAttributeAttribute("palette")]
public string Palette;
[XmlElement("categories")]
public List<Category> Categories = new List<Category>();
}
[XmlRoot("category")]
public class Category
{
[XmlAttributeAttribute("label")]
public string Label;
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会产生所需的chart-> categories-> category @ label结构.似乎没有使用Category类上的XmlRoot.这是我从该代码得到的输出:
<chart palette="2">
<categories label="2002" />
</chart>
Run Code Online (Sandbox Code Playgroud)
如何获得我想要的XML结构?
我正在尝试找到一种可以用来简化某些对象构造的设计模式.
基于传入参数,一个自定义类,我将从System.Windows.Forms.Control类创建各种继承器.
例如,如果自定义类的一个成员设置为'ChkBox',我希望我的类返回一个System.Windows.Forms.CheckBox,或者如果该成员是'List',我希望我的类返回一个ComboBox.
public CustomClass()
{
FieldType type;
}
Run Code Online (Sandbox Code Playgroud)
和
GetControl(CustomClass type);
Run Code Online (Sandbox Code Playgroud)
常见的是,我想要创建的所有类都具有Control作为它的基类.考虑到这一点,我想有一种方法可以只在一个地方设置基类的成员.
你知道我可以用来解决这个问题的任何设计模式吗?
我正在做一些Windows Phone 7开发,并希望格式化我绑定的字符串.
由于某种原因,我不能使用如下所示的StringFormat.选项就在那里.
<TextBlock Text="{Binding Distance, StringFormat=\{0\}km}" />
Run Code Online (Sandbox Code Playgroud)
为什么StringFormat不适用于Windows Phone 7?
我正在阅读CppCoreGuidelines哲学,并找到了一个我不理解的例子.(https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-philosophy)
代码示例说;
change_speed(double s); // bad: what does s signify?
// ...
change_speed(2.3);
change_speed(Speed s); // better: the meaning of s is specified
// ...
change_speed(2.3); // error: no unit
change_speed(23m / 10s); // meters per second
Run Code Online (Sandbox Code Playgroud)
我的问题是关于最后一行.我假设指南建议像这样定义速度;
typedef int Speed;
Run Code Online (Sandbox Code Playgroud)
但是在示例的最后一行中,他们使用m和s作为参数的一部分.如果我尝试相同,我只会收到一条错误,说"未找到用户定义的文字运算符".
这应该怎么样?
我有一个看起来像这样的类:
public class Parent
{
public class Subclass
{
}
}
Run Code Online (Sandbox Code Playgroud)
并使用反射我试图找到子类
void main
{
Parent p = new Parent();
Type t = p.GetType();
Type s = t.GetNestedType("Subclass"); //s is not set
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为显然没有嵌套类型。如何找到子类的类型?我需要获取 s 的原因是稍后调用 .GetMethod("someMethod").Invoke(...) 。
我想更好地使用NUnit来测试我编写的应用程序,但我经常发现我编写的单元测试有一个直接链接到开发机器上的环境或底层数据库.
让我举个例子.
我正在编写一个单独负责重写字符串的类,该字符串已由另一个应用程序存储在注册表中.密钥存储在HKCU\Software\CustomApplication\IniPath中.
我最终写的测试看起来像这样;
[Test]
public void GetIniDir()
{
RegistryReader r = new RegistryReader();
Assert.AreEqual(@"C:\Programfiles\CustomApplication\SomeDir", r.IniDir);
}
Run Code Online (Sandbox Code Playgroud)
但问题是字符串@"C:\ Programfiles\CustomApplication\SomeDir"现在真的是正确的.明天它可能已经改为@"C:\ Anotherdir\SomeDir",突然间,即使代码没有改变,也会破坏我的单元测试.
当我创建一个对数据库执行CRUD操作的类时,也会出现此问题.数据库中的数据可以随时更改,这反过来会使测试失败.因此,即使我的类完成了预期的操作,它也会失败,因为数据库会返回我最初编写测试时所拥有的更多客户.
[Test]
public void GetAllCustomersCount()
{
DAL d = new DAL();
Assert.AreEqual(249, d.GetCustomerCount());
}
Run Code Online (Sandbox Code Playgroud)
你们有没有关于编写不依赖周围环境的测试的技巧?
我有一个页面包含HTML锚标签,其中设置了title属性.
<a href="...." title="Some tooltip text" />
Run Code Online (Sandbox Code Playgroud)
我想检测何时显示工具提示,并运行一些javascript.这是为了记录已显示工具提示.使用OnMouseOver是不够的,因为它太早触发.
有任何想法吗?
我正在使用System.Net.WebClient从URL中检索一些数据.
void GetAirportData()
{
var url = "http://server.example.com/airports.xml?id=OSL";
var webClient = new WebClient();
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
webClient.OpenReadAsync(new Uri(url, UriKind.Absolute));
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//How can I see the original URL here, so that I can see which id parameter was passed?
}
Run Code Online (Sandbox Code Playgroud)
我发送的请求将包含一个URL,其中包含一些参数,这些参数会针对每个调用进行更改,我需要知道响应响应时我要求的参数.
我可以使用例如sender对象的.UserState属性吗?
我有一个Windows窗体(C#)项目,其中包含多个组合框/列表框等,在表单加载时填充.
问题是组合框/列表框的加载速度很慢,并且由于在表单尝试显示时完成加载,因此在填充所有控件之前不会显示整个表单.在某些情况下,这可能是20秒以上.
如果有一个Form_finished_loaded类型的事件我可以将我的代码放在那里,但是我无法找到在完成表单绘制基本控件后触发的事件.
我有一个要求 - 加载必须在主线程中完成(因为我从一个非线程友好的COM应用程序中获取项目).
我找到了一个可能的解决方案,但也许有更好的方法?我可以在创建表单时创建一个System.Timer.Timer,并在大约1秒后调用第一个Tick,然后从该tick中填充列表.这使表单在开始填充列表之前有足够的时间显示.
有没有人有关于如何延迟加载控件的任何其他提示?
在我们的 SQL Server 数据库之一中,我们有许多 SQL 视图。每隔几周,一种特定的观点就会消失,我想知道到底发生了什么。
有没有办法查询 SQL Server 来查明删除视图的时间和人员?
或者,是否可以在DROP视图命令上添加 SQL Server 触发器来捕获和失败DROP?
c# ×6
jquery ×2
c++ ×1
html ×1
javascript ×1
nunit ×1
reflection ×1
sql-server ×1
unit-testing ×1
webclient ×1
winforms ×1
xml ×1