.NET有一个称为远程处理的东西,你可以在不同的应用程序域甚至物理机器之间传递对象.我不完全理解魔法是如何完成的,因此这个问题.
在远程处理中,有两种传递对象的基本方法 - 它们可以被序列化(转换为一堆字节并在另一端重建)或者它们可以从MarshalByRefObject继承,在这种情况下.NET会生成一些透明代理,所有这些都是方法调用被转发回原始实例.
这非常酷,就像魔法一样.而且我不喜欢编程中的魔法.纵观MarshalByRefObject与反射我看不到任何会使其有别于任何其他典型的对象.甚至不是一个奇怪的内部属性或任何东西.那么整个透明代理事件是如何组织起来的呢?我可以自己制作这样的机制吗?我可以制作一个MyMarshalByRefObject不会继承的替代品,MarshalByRefObject但仍会采取相同的行动吗?或者正在MarshalByRefObject接受.NET引擎本身的一些特殊处理,整个远程专长是不可复制的?
请考虑以下简单应用程序:由VS中的"新C#windows应用程序"序列创建的窗口表单,该表单按以下方式修改:
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
try
{
Application.Run(new Form1());
}
catch (Exception ex)
{
MessageBox.Show("An unexpected exception was caught.");
}
}
Run Code Online (Sandbox Code Playgroud)
Form1.cs包含以下修改:
private void Form1_Load(object sender, EventArgs e)
{
throw new Exception("Error");
}
Run Code Online (Sandbox Code Playgroud)
如果我在IDE中按F5,那么,正如我所料,我看到一个消息框,说明异常被捕获并且应用程序退出.
如果我去Debug(或Release)/ bin并启动可执行文件,我会看到标准的"Unhandled exception"窗口,这意味着我的异常处理程序不起作用.
显然,这与从调用Application.Run的不同线程抛出的异常有关.但问题仍然存在 - 为什么行为会因应用程序是从IDE运行还是从命令行运行而有所不同?确保应用程序中未处理任何异常的最佳做法是什么?
我想得到这样的东西:http://img202.imageshack.us/img202/552/layoutoy.png.我使用它作为列表项(技术上作为ExpandableListView的组视图).
这是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight">
<TextView
android:id="@+id/list_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end" />
<Button
android:id="@+id/list_item_button"
android:text="Click me!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/list_item_text" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.Button不会包装其内容,而是使用所有可用的水平空间.TextView 确实包装了它的内容,但我想要它做的是在它与Button重叠时切断它.
换句话说,无论textview中的文本量如何,我都希望所有按钮具有相同的宽度.这是可能吗?
我找不到在自定义UIBarButtonItem中设置标题字体大小的方法.我能想到解决这个问题的唯一方法是将其设置为我想避免的图像.还有其他建议吗?
我正在尝试编写自己的自定义验证属性,但我遇到了一些问题.
我试图写的属性是当用户登录时,密码将与确认密码进行比较.
namespace Data.Attributes
{
public class ComparePassword : ValidationAttribute
{
public string PasswordToCompareWith { get; set; }
public override bool IsValid(object value)
{
if (PasswordToCompareWith == (string)value)
{
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是当我试图在模型文件中设置这样的属性时:
[Required]
[ComparePassword(PasswordToCompareWith=ConfirmPassword)]
public string Password { get; set; }
[Required]
public string ConfirmPassword { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误1非静态字段,方法或属性'Project.Data.Models.GebruikerRegistreerModel.ConfirmPassword.get'需要对象引用
似乎VS不接受confirmpassword该PasswordToCompareWith=ConfirmPassword部分.
我究竟做错了什么?
我有以下代码片段.
public static void main(String[] args) {
short a = 4;
short b = 5;
short c = 5 + 4;
short d = a;
short e = a + b; // does not compile (expression treated as int)
short z = 32767;
short z_ = 32768; // does not compile (out of range)
test(a);
test(7); // does not compile (not applicable for arg int)
}
public static void test(short x) { }
Run Code Online (Sandbox Code Playgroud)
以下摘要是否正确(仅针对上面的例子使用short)?
但是,为什么我需要在考虑前一个摘要的情况下转换第二个方法调用的参数?
我假设:
这些假设是否正确?如果有人要发展自己,有什么必须做的不应该做什么?
我希望使用DataGrid而不是TextBox来实现一个
我对C++和python很满意.我可能会使用QT/PyQT
编辑
我的文件通常在1.5到2 GB之间.我正在寻找编辑和查看这些文件
当你点击它打开的链接时,我在jQuery中有一个菜单,但我想要它,所以当你点击其他地方,在其他任何不是菜单的地方时,它就会变得隐藏.
目前我正在将点击事件绑定到
$(':not(#the_menu)')
Run Code Online (Sandbox Code Playgroud)
但这似乎是我将点击事件绑定到整个减去菜单,是否有更有效的方法来做这样的事情?
有冲刺和冲刺.是否有"en"等同于 ?是否有与纯Ascii 32相当的en?
我想要一个更好的方法来写这个:
123<span class="spanen"> </span>456<span class="spanen"> </span>789
Run Code Online (Sandbox Code Playgroud)
或这个:
123<span class="spanen"> </span>456<span class="spanen"> </span>789
Run Code Online (Sandbox Code Playgroud) 构建异常类位置的常见或最佳实践是什么?
假设您有包/名称空间myproject.person(人员的模型和DAO)和myproject.order(订单的模型和DAO)以及例外PersonException和OrderException.我应该将异常放在相应的包中还是在单独的包中用于例外(例如myproject.exceptions)?
第一种方法似乎更合理(因为它按功能排序).但是问题出在哪里你应该放置与两者相关的例外?例如ConstraintViolationException
谢谢
c# java exception package-structuring namespace-organisation
c# ×3
java ×3
.net ×2
android ×1
asp.net-mvc ×1
attributes ×1
c++ ×1
casting ×1
clr ×1
dom ×1
exception ×1
font-size ×1
html ×1
iphone ×1
javascript ×1
jquery ×1
layout ×1
performance ×1
pyqt ×1
python ×1
qt ×1
remoting ×1
typography ×1
validation ×1
windows ×1
winforms ×1
xml ×1