小编Wes*_*ser的帖子

为什么LocalBuilder.SetLocalSymInfo没有发出变量名?

我试图运行出现的文档页面上的示例代码System.Reflection.Emit.LocalBuilder类,但它看来,调用LocalBuilder.SetLocalSymInfo(string, int, int)没有做任何事情,因为IL反汇编显示了这个作为IL的SampleAssembly.dll:

.method public static string  Function1(int32 A_0) cil managed
{
  // Code size       10 (0xa)
  .maxstack  1
  .locals init (string V_0,
           int32 V_1)
  IL_0000:  ldarg.0
  IL_0001:  stloc.1
  IL_0002:  ldstr      "string value"
  IL_0007:  stloc.0
  IL_0008:  ldloc.0
  IL_0009:  ret
} // end of method Example::Function1
Run Code Online (Sandbox Code Playgroud)

为什么不在Dissasembler中列出变量名(myString和myInt)?

环境信息:

  • Windows 7 64位
  • Visual Studio 2010 Professional SP1
  • .Net 4.0.30319 SP1
  • 目标框架:.Net 4客户端配置文件
  • 调试配置(对于使用System.Reflection.Emit的程序)

编辑:正如我在评论中提到的,有一个SampleAssembly.pdb文件与SampleAssembly.dll文件一起生成.

il reflection.emit .net-4.0 variable-names debug-symbols

6
推荐指数
1
解决办法
309
查看次数

通过Android 3.1上的USB端口读取和写入数据

我正在尝试编写一个Android应用程序,用于从Android平板电脑读取和写入数据到我们的嵌入式设备.平板电脑和嵌入式设备通过USB连接到串行转换器.是否可以将嵌入式设备中的数据读入我们的Android平板电脑?我可以看看的任何示例代码?

java usb android tablet

6
推荐指数
1
解决办法
1万
查看次数

git flow release使用包含空格的消息完成

我该如何提供真实的信息git flow release finish?

这是我的尝试和它的输出看起来像:

> git flow release finish -m 'Release 0.0.4 - Fixing a bug' 0.0.4
flags:FATAL the available getopt does not support spaces in options
Run Code Online (Sandbox Code Playgroud)

我可以让它工作的唯一方法是当我不在消息中使用任何空格时.

git git-flow

6
推荐指数
3
解决办法
3554
查看次数

成员函数对浮点数不起作用

在本回答中,以下代码的计算方法如下:

> let x = fromList  [0, -1, 0/0, -5, -6, -3] :: Set Float

> member 0 x
True

> let x' = insert (0/0) x

> member 0 x'
False
Run Code Online (Sandbox Code Playgroud)

笔者指出了这种情况,因为Eq和Ord浮点情况下,不服从法律的单子.如何Eq和Ord浮点实例打破monad定律,为什么会导致上述行为?

floating-point monads haskell

6
推荐指数
1
解决办法
361
查看次数

Record Equals或GetHashCode抛出NullReferenceException

我有一些看起来像这样的记录:

[<DataContract>]
type Rec1 = {
    [<DataMember>] mutable field1 : int;
    [<DataMember>] mutable field2 : string;
}

[<DataContact>]
type Rec2 = { 
    [<DataMember>] mutable field3 : Rec1;
    [<DataMember>] mutable field4 : int;
}
Run Code Online (Sandbox Code Playgroud)

我DataContactJsonSerializer用来将JSON反序列化为这个结构.这是一个有效的JSON值:

{ "field3": null, "field4": 1 }
Run Code Online (Sandbox Code Playgroud)

这意味着在运行时,field3是null/Unchecked.defaultOf<_>.在Visual Studio 2010中,此测试工作正常:

(deserialize<Rec2> "{ field3: null, field4: 1 }") = { field3 = Unchecked.defaultOf<_>; field4 = 1 } //true
Run Code Online (Sandbox Code Playgroud)

在Visual Studio 2013中,相同的代码抛出NullReferenceException:

at Rec2.Equals(Rec2 obj) 
Run Code Online (Sandbox Code Playgroud)

偷看ILSpy中的代码,我看到这是生成的:

if(this != null)
{
    return …
Run Code Online (Sandbox Code Playgroud)

f# nullreferenceexception .net-4.5

6
推荐指数
1
解决办法
339
查看次数

如何使用Reflection Emit定义具有相同名称和不同类型参数的多个类型?

如何使用System.Reflection.Emit库生成类似这样的类型:

public class Test<T> {}
public class Test<T1, T2> {}
Run Code Online (Sandbox Code Playgroud)

当我使用第二个类型声明调用ModuleBuilder.DefineType(string)时,我得到一个异常,因为模块中已经存在另一个具有相同名称的类型(我已经在第一个类型上定义了类型参数).有任何想法吗?

.net c# generics reflection.emit

5
推荐指数
1
解决办法
207
查看次数

在.Net中,为什么在调用Type.GetCustomAttributes(true)时返回的接口上没有声明属性?

在回答这个问题时,我尝试Type.GetCustomAttributes(true)在一个实现接口的类上使用,该接口上定义了一个Attribute.我很惊讶地发现GetCustomAttributes没有返回界面上定义的属性.为什么不呢?接口链不是接口的一部分吗?

示例代码:

[Attr()]
public interface IInterface { }

public class DoesntOverrideAttr : IInterface { }

class Program
{
    static void Main(string[] args)
    {
        foreach (var attr in typeof(DoesntOverrideAttr).GetCustomAttributes(true))
            Console.WriteLine("DoesntOverrideAttr: " + attr.ToString());
    }
}

[AttributeUsage(AttributeTargets.All, Inherited = true)]
public class Attr : Attribute
{
}
Run Code Online (Sandbox Code Playgroud)

输出:没什么

.net inheritance attributes interface getcustomattributes

5
推荐指数
1
解决办法
975
查看次数

无法使用新的Android 4.0 VpnService框架

我正在尝试将新的Android 4.0 VPN框架与模拟器一起使用.

在我的示例应用程序中,我正在调用:

 Intent intent = VpnService.prepare(SimpleVpnActivity.this);
 if(null != intent){
     startActivityForResult(intent, 1);
 }
Run Code Online (Sandbox Code Playgroud)

但是应用程序因异常而崩溃,因为VpnService.prepare()返回一个显式意图:Intent:{cmp = com.android.vpndialogs/.ConfirmDialog}用于startActivityForResult()无法找到的活动.

难道我做错了什么?

我将不胜感激任何帮助.

我的堆栈转储:

E/AndroidRuntime(12783): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.vpndialogs/ 
com.android.vpndialogs.ConfirmDialog}; have you declared this activity in your AndroidManifest.xml? 
E/AndroidRuntime(12783):        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508) 
E/AndroidRuntime(12783):        at android.app.Instrumentation.execStartActivity(Instrumentation.java: 1384) 
E/AndroidRuntime(12783):        at android.app.Activity.startActivityForResult(Activity.java:3190) 
E/AndroidRuntime(12783):        at com.my.simple.vpn.SimpleVpnActivity $1.onClick(SimpleVpnActivity.java:30) 
E/AndroidRuntime(12783):        at android.view.View.performClick(View.java: 3460) 
E/AndroidRuntime(12783):        at android.view.View $PerformClick.run(View.java:13955) 
E/AndroidRuntime(12783):        at android.os.Handler.handleCallback(Handler.java:605) 
E/AndroidRuntime(12783):        at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(12783):        at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(12783):        at android.app.ActivityThread.main(ActivityThread.java:4340) 
E/AndroidRuntime(12783):        at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(12783):        at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(12783): …
Run Code Online (Sandbox Code Playgroud)

vpn android android-4.0-ice-cream-sandwich

5
推荐指数
1
解决办法
2898
查看次数

Wi-Fi网络共享 - 如何获取已连接客户端的列表

当我的手机处于Wi-Fi网络共享模式时,有没有办法获得连接的MAC地址列表?

android wifi tethering

5
推荐指数
2
解决办法
2万
查看次数

内部可变性如何用于缓存行为?

我正在尝试创建一个struct,Path并按需从指定的路径加载图像。这是我到目前为止的内容:

extern crate image;

use std::cell::{RefCell};
use std::path::{Path};
use image::{DynamicImage};

pub struct ImageCell<'a> {
    image: RefCell<Option<DynamicImage>>,
    image_path: &'a Path, 
}

impl<'a> ImageCell<'a> {
    pub fn new<P: AsRef<Path>>(image_path: &'a P) -> ImageCell<'a>{
        ImageCell { image: RefCell::new(None), image_path: image_path.as_ref() }
    }

    //copied from https://doc.rust-lang.org/nightly/std/cell/index.html#implementation-details-of-logically-immutable-methods
    pub fn get_image(&self) -> &DynamicImage {
        {
            let mut cache = self.image.borrow_mut();
            if cache.is_some() {
                return cache.as_ref().unwrap(); //Error here
            }

            let image = image::open(self.image_path).unwrap();
            *cache = Some(image);
        }

        self.get_image()
    } 
}
Run Code Online (Sandbox Code Playgroud)

无法编译:

src/image_generation.rs:34:24: 34:29 …
Run Code Online (Sandbox Code Playgroud)

mutability rust

5
推荐指数
1
解决办法
545
查看次数