标签: managed

在jsf页面和托管bean之间,为什么getter方法被调用两次

我有一个带有表单的jsf页面,其中包含一个outputtext.outputtext组件的值是从辅助bean(或托管bean)调用的.我知道当我将其编码为#{MyBean.myString}时,Jsf将其重命名并调用getMyString()方法.然而,奇怪的是,当我将断点放到此组件的getter方法时,我看到它在页面呈现期间被调用了两次.outputtext在ah:form中,它是唯一绑定到backingbean的组件.我的意思是,jsf在第一次进入getter方法时应该得到它是如此奇怪,但它需要两次进入getter方法.你能解释一下jsf中这种行为的原因是什么吗?

任何帮助将不胜感激,祝福,巴里斯

jsf managed javabeans

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

ManagedSpy发生了什么?

ManagedSpy应该是.NET的Spy ++等价物,但不知何故,下载页面现在已不再可用了.

谁知道为什么?

谁知道更换?

--jeroen

managed spy++

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

什么是托管类型?它们是否特定于Delphi?它们是否针对Windows?

综述:

请查看以下知识渊博的评论.

================================================== ============

我已经看到了managed types 很多stackoverflow Delphi主题中提到的术语.例如,它在主题中提到correctly initializing/finalizing.但是,当我谷歌时managed types,似乎大多数链接都与C++或.NET有关.例如,请参阅MSDN页面.有人可以帮助评论Delphi中定义的托管类型吗?鉴于Delphi for POSIX/MacOS正在诞生,是Windows特有的托管类型吗?感谢您提前付出的努力和时间!

PS:主题correctly initializing/finalizing:
在Delphi中初始化哪些变量?
delphi变量是否默认使用值初始化?
我应该如何在Delphi 7析构函数中释放一组对象?
在Delphi 2009中,我是否需要释放变体数组?

delphi types managed

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

为什么我不能使用Marshal.Copy()来更新结构?

我有一些代码用于从字节数组中获取结构:

    public static T GetValue<T>(byte[] data, int start) where T : struct
    {
        T d = default(T);
        int elementsize = Marshal.SizeOf(typeof(T));

        GCHandle sh = GCHandle.Alloc(d, GCHandleType.Pinned);
        Marshal.Copy(data, start, sh.AddrOfPinnedObject(), elementsize);
        sh.Free();

        return d;
    }
Run Code Online (Sandbox Code Playgroud)

但是,结构d永远不会被修改,并始终返回其默认值.

我已经查找了"正确"的方法,并且正在使用它,但仍然很好奇,因为我不明白为什么上面的内容不起作用.

它可以很简单:分配一些内存,d,获取指向它的指针,将一些字节复制到由此指向的内存中,返回.不仅如此,但是当我使用类似的代码但是d是T的数组时,它工作正常. 除非sh.AddrOfPinnedObject()没有真正指向d,但那有什么意义呢?

谁能告诉我为什么以上不起作用?

.net c# managed marshalling

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

C#和C++/CX对象如何相关?

我有一个将由C#WP应用程序使用的WP C++运行时组件.

在C++ Runtime Component中,我有

public interface class ICallback
    {
    public:
        virtual void DoSomething();
    };

public ref class WindowsPhoneRuntimeComponent sealed
    {
    public:
        WindowsPhoneRuntimeComponent();
        void SetCallback(ICallback ^callback);
        IMap<Platform::String^, Platform::Object^>^ CreateDictionary();

    };
Run Code Online (Sandbox Code Playgroud)

在C#Application中,我 CallbackImp实现了ICallback.然后我做

CallbackImp cb = new CallbackImp ();
WindowsPhoneRuntimeComponent com = new WindowsPhoneRuntimeComponent();

// Set callback
com.SetCallback(cb);

// Get dictionary
IDictionary<string, object> dict = com.CreateDictionary();
Run Code Online (Sandbox Code Playgroud)

我有以下问题

  1. cbcom是托管对象.那么C++/CX对象在哪里呢?我听说cbcom指向一些C++/CX对象(驻留在本机堆上),对吧?
  2. 如果.NET GC发布了cbcom,那么C++/CX对象是如何发布的呢?
  3. 当我将cb传递给Runtime组件时,cb是属于托管堆还是本机堆?
  4. dict在哪里居住?谁会释放它?

native managed windows-runtime c++-cx windows-phone-8

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

从非托管C Dll加载托管C++ Dll?

我有一个现成的产品,它支持需要用Unmanaged C编写的自定义插件.它不支持Managed Dll,我的首选语言是c#.

需要传递回现货产品的信息非常基本,可以保存在一个字符串中.

所以我想我可以做到以下几点:

  1. 将我的大部分代码写在C#Dll中.
  2. 在C++管理代码中编写一个包装器,它调用我的C#方法.
  3. 在非托管C中编写一个基本的Dll,它调用托管C++ Dll.

现在,在托管C++和C#Dll之间进行通信很容易.

但我无法弄清楚如何从非托管c dll调用托管c ++函数.任何简单示例代码的帮助都会很棒.

谢谢

编辑:我创建了一个代码项目文章,关于我是如何使用Alex的答案在下面做的. http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-code

c# c++ unmanaged managed

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

混合代码(本机,托管):它(技术上)如何互操作?

我基本上理解托管和本机代码的概念及其区别.但他们在技术上如何相互沟通呢?想象一下以下示例:

我得到了一些为特定平台编译的静态或动态c ++库.现在我编写一个Java程序.在这段代码中,我使用'native'关键字调用库函数.我用字节码构建一个jar文件,c ++库文件将保持独立.结果将不再是与平台无关的.

  1. 但java程序如何知道调用的本机方法是否存在?

  2. 整个programmcode在运行时是如何执行的?我知道字节码将用JIT解释或编译.

  3. 这一切如何适合沙盒范例?本机代码是否也在沙箱中执行?

  4. 它是否有效,因为(java和c ++)代码到底都是机器代码?

也许这是一个愚蠢的问题.但我一直在想......

编辑:我有3个很好的答案.真的无法决定哪个对我帮助最大.但我会将这个问题标记为已经回答,以便从我这边关闭这个话题.

c++ java native managed

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

在 C# 中运行时挂钩托管方法

我有一个密封类,在程序集中有一个公共方法,我想添加一个日志系统,但不幸的是我没有源代码。因此,我尝试在特定的日志记录方法上绕过此方法,并在退出时调用原始方法。挂钩工作正常,但我无法获取任何类型的参数,或者至少我得到了完全错误的东西。

我也不能使用任何类型的注入或像 PostSharp 这样的库,所以我想知道这种东西是否可以在运行时以某种方式实现,或者我可以放弃吗?

为了给您提供更多详细信息,我将在下面粘贴一些代码部分:

public Hook(Delegate target, Delegate hook)
{
  this.target = Marshal.GetFunctionPointerForDelegate(target);
  targetDelegate = target;
  this.hook = Marshal.GetFunctionPointerForDelegate(hook);

  originalBytes = new byte[6];
  Marshal.Copy(this.target, originalBytes, 0, 6);

  byte[] hookPointerBytes = BitConverter.GetBytes(this.hook.ToInt32());
  // Jump
  newBytes = new byte[]
  {
    0x68, hookPointerBytes[0], hookPointerBytes[1], hookPointerBytes[2], hookPointerBytes[3], 0xC3
  };
}

public object CallOriginal(params object[] args)
{
  // Remove the patch
  Uninstall();
  // Invoke the original method
  object ret = targetDelegate.DynamicInvoke(args);
  // Re-apply the patch
  Install();
  return ret;
}


public sealed class Foo
{ …
Run Code Online (Sandbox Code Playgroud)

c# methods hook detours managed

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

如何修改 web.config 中定义的 ASP.NET(Web 窗体)中的 HTTP 标头

我在ASP.NET(Web 表单)网站的 web.config 中定义了一些自定义 HTTP 响应标头。

我正在尝试编写一个managed HTTP module可以在将这些web.config定义的标头发送回客户端之前修改它们的方法。不幸的是,无论我使用什么事件 (PreSendRequestHeaders, EndRequest) ,集合中web.config都不存在定义的标头Response.Headers

我知道PreSendRequestHeaders不推荐这样做,所以我也尝试使用,Response.AddOnSendingHeaders但这也不能让我访问标题。

具体来说,我想要做的是为我们的Content Security Policy (CSP). 我想自动向所有内联脚本块添加一个 nonce 属性(我有一个可用的 POC),然后修改HTTP CSP header(在 web.config 中定义)以将“nonce-”项添加到该script-src部分。

我不想添加CSP headerin 代码,因为它经常更改,重新编译和发布网站会很痛苦。

我是否需要求助于本机IIS module来实现这一点,还是有某种方法可以使用托管代码(首选)来做到这一点?

asp.net web-config managed http-headers content-security-policy

5
推荐指数
0
解决办法
533
查看次数

在 azure 函数的队列触发器中使用托管标识

我想使用托管身份,而不是在存储帐户连接中配置的用户名和密码。我只看到使用连接字符串配置队列触发器的选项,但无法添加托管标识以避免配置机密。这可能吗?

managed azure azure-functions

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