我正在尝试将Silverlight支持添加到我最喜欢的编程语言Nemerle中.
Nemerle,在编译过程中,主要通过两个步骤通过反射加载所有类型
1-)使用Assembly.LoadFrom加载程序集2-)使用Assembly.GetTypes()来获取类型
然后在编译结束时,它使用Reflection.Emit发出已解析的类型.
此过程适用于所有程序集,包括除Silverlight的mscorlib之外的Silverlight程序集.
在c#中,这失败了:
var a = System.Reflection.Assembly.LoadFrom(@"c:\mscorlib.dll");
Run Code Online (Sandbox Code Playgroud)
但这传递了:
var a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(@"c:\mscorlib.dll");
Run Code Online (Sandbox Code Playgroud)
Bu在后者中,a.GetTypes()抛出一个异常,说System.Object的父节点不存在.
有出路吗 ?
silverlight reflection.emit nemerle mscorlib assembly.reflectiononly
我如何进行浏览器兼容性测试?
是否有任何特定的方式或清单,我可以通过它确认浏览器IE 6/7/8上的兼容性测试完成.
让我将我的查询特别扩展到一个应用程序:
让我们假设一个Web应用程序在IE6中进行测试(约5000个测试用例)
现在我还需要检查IE7和IE8中的应用程序兼容性.
我该怎么做?因为我无法在所有浏览器中执行所有5000个测试用例
我需要确切知道在IE7和IE8浏览器中测试时可能出现的问题.
测试浏览器中应用程序兼容性的基准是什么?
我想在几个超类上有更详细的日志调试/日志记录输出,因此子类名称实际上不会影响实时性能,也不会影响应用程序逻辑.我也认为通常这样做是相当糟糕的设计,但是我真的希望在开发运行期间记录这些信息.
假设我有一个如下所示的简单类结构,如何将子类的名称拉入超类而不必显式传递引用?
public abstract AbstractClass {
private Logger logger = LoggerFactory.getLogger(getClass());
public AbstractClass() {}
public void execute(ContextObject context) {
if (logger.debuggingEnabled()) {
String invokingClassName = ""; // <-- how do I get this?
logger.debug("Executing {}", invokingClassName);
}
// shared application logic is here...
}
}
public MyClass extends AbstractClass {
public MyClass() {}
@Override
public void execute(ContextObject context) {
super.execute(context);
// application logic...
}
}
Run Code Online (Sandbox Code Playgroud)
我曾经使用过解析堆栈跟踪,我怀疑如果我想要这些信息,那就是我必须走的路线.有谁知道一个库会为我做这个或一个很好的代码片段?
我正在使用官方的Sybase JDBC驱动程序连接到数据库并通过创建CallableStatement调用存储过程,将参数绑定到它并在其上调用.execute().
但是,我发现即使存储过程失败,也不会抛出任何异常.我可以通过使用Wireshark嗅探到数据库的流量并观察返回的错误消息来验证故障是否传播回给我.
最后我发现使用.executeUpdate()而不是.execute()确实给了我例外,但是我还有两个问题:
更新:我已经尝试过jTDS,它的行为正确(如:在两种情况下都抛出SQLException - 使用.execute()和.executeUpdate()).但是,由于我无法控制的限制,切换驱动程序实际上是不可能的.
另外:我对此存储过程返回的结果不感兴趣,它是一个插入/更新类型过程.我只会被插入以查看(并且能够捕获/记录)它是否失败.我尝试过的另一件事是在.execute()之后从连接中获取警告,但它也没有包含任何内容.
我使用以下架构来检查以下XML文件.我发现当People元素中有多个Information元素时,模式检查将失败.为什么以及如何解决它(我想让People元素能够嵌套多个信息项)?
XML Schema文件:
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element name="Information">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
XML文件(模式检查将失败):
<People>
<Information Id="1">
<Name>John</Name>
</Information>
<Information Id="2">
<Name>Mike</Name>
</Information>
</People>
Run Code Online (Sandbox Code Playgroud)
XML文件(模式检查会成功):
<People>
<Information Id="1">
<Name>John</Name>
</Information>
</People>
Run Code Online (Sandbox Code Playgroud)
乔治,提前谢谢
我有一个GridView,它可以很容易地填充来自SQL数据库的数据.现在我想替换我的一列中的值,就像这样......
如果c04_oprogrs值为1,则在GridView中显示Take.
如果c04_oprogrs值为2,则在GridView中显示Available.
我必须更改哪些代码才能更改为我的代码以显示新值.
我的网格
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Height="281px" Width="940px"
Font-Size="X-Small" AllowPaging="True"
onpageindexchanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="c04_oprogrs" HeaderText="Order Progress"
SortExpression="c04_oprogrs" />
<asp:BoundField DataField="c04_orderno" HeaderText="Order No."
SortExpression="c04_orderno" />
<asp:BoundField DataField="c04_orddate" HeaderText="Date of Order"
SortExpression="c04_orddate" DataFormatString="{0:d/MM/yyyy}" />
<asp:BoundField DataField="c04_ordval" HeaderText="Order Value"
SortExpression="c04_ordval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_delval" HeaderText="Delivered Value"
SortExpression="c04_delval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_invval" HeaderText="Invoice Value"
SortExpression="c04_invval" DataFormatString="{0:R#,###,###.00}" />
<asp:BoundField DataField="c04_orddesc" HeaderText="Order Description"
SortExpression="c04_orddesc" >
<ControlStyle Width="300px" />
</asp:BoundField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
我的页面加载
SqlConnection myConnection;
DataSet dataSet = new DataSet(); …Run Code Online (Sandbox Code Playgroud) 为了动态构建bind_param,我在其他SO帖子上找到了这个.
call_user_func_array(array(&$stmt, 'bindparams'), $array_of_params);
Run Code Online (Sandbox Code Playgroud)
有人可以用简单的英语为我打破这个吗?我特别迷失了,第一个参数是一个数组.
如果我有以下接口和一个实现它们的类 -
IBase = Interface ['{82F1F81A-A408-448B-A194-DCED9A7E4FF7}']
End;
IDerived = Interface(IBase) ['{A0313EBE-C50D-4857-B324-8C0670C8252A}']
End;
TImplementation = Class(TInterfacedObject, IDerived)
End;
Run Code Online (Sandbox Code Playgroud)
以下代码打印'Bad!' -
Procedure Test;
Var
A : IDerived;
Begin
A := TImplementation.Create As IDerived;
If Supports (A, IBase) Then
WriteLn ('Good!')
Else
WriteLn ('Bad!');
End;
Run Code Online (Sandbox Code Playgroud)
这有点烦人但可以理解.支持无法转换为IBase,因为IBase不在TImplementation支持的GUID列表中.可以通过将声明更改为 - 来修复
TImplementation = Class(TInterfacedObject, IDerived, IBase)
Run Code Online (Sandbox Code Playgroud)
然而,即使没有这样做,我已经知道 A实现了IBase,因为A是IDerived,而IDerived是IBase.所以,如果我遗漏支票,我可以投A,一切都会好的 -
Procedure Test;
Var
A : IDerived;
B : IBase;
Begin
A := TImplementation.Create As IDerived;
B := IBase(A);
//Can now successfully call any of B's methods …Run Code Online (Sandbox Code Playgroud) java ×3
asp.net ×1
bytecode ×1
c# ×1
comparison ×1
debugging ×1
delphi ×1
delphi-2007 ×1
gridview ×1
interface ×1
jdbc ×1
jvm ×1
mscorlib ×1
mysqli ×1
nemerle ×1
schema ×1
silverlight ×1
sqlexception ×1
stack-trace ×1
sybase ×1
testing ×1
types ×1
unicode ×1
winapi ×1
xml ×1