我正在编写一些代码,需要能够从调用类的方法中获取参数的值.我知道如何一直到ParameterInfo []数组,但我不知道如何获取值.这甚至可能吗?
如果是,我认为它与使用MethodInfo对象的MethodBody属性有关,它允许你检查IL流,包括属性,但我不知道怎么做,我还没找到适用于Google的代码.
// Finds calling method from class that called into this one
public class SomeClass
{
public static void FindMethod()
{
for (int i = 1; i < frameCount; i++)
{
var frame = new StackFrame(i);
var methodInfo = frame.GetMethod();
if (methodInfo.DeclaringType != this.GetType())
{
string methodName = frame.GetMethod().Name;
var paramInfos = methodInfo.GetParameters();
// Now what?? How do I get the values from the paramInfos
break;
}
else if (i == frameCount - 1) …Run Code Online (Sandbox Code Playgroud) 我在docs中发现他们指的是SIMPLE-TLV和BER-TLV.我查看了大多数EMV和GP文档,但他们没有提到不同的内容.
谁能帮助我理解两者的区别?
我有一个表格,结构如下:
------------------------------
LocationID | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321
Run Code Online (Sandbox Code Playgroud)
要传入另一个存储过程,我需要XML看起来像这样:
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
Run Code Online (Sandbox Code Playgroud)
到目前为止我能做到的最好的就是这样:
<root clientID="10705"/>
Run Code Online (Sandbox Code Playgroud)
我正在使用这个SQL语句:
SELECT
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID'
FROM
Location.LocationMDAccount
WHERE
locationid = 'long-guid-here'
FOR XML EXPLICIT
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经查看了MSDN页面上的文档,但是我没有得到预期的结果.
@公斤,
你实际给了我这个输出:
<root>
<Location.LocationMDAccount>
<clientId>10705</clientId>
</Location.LocationMDAccount>
</root>
Run Code Online (Sandbox Code Playgroud)
我现在要坚持FOR XML EXPLICIT克里斯莱昂.
我试图动态获取ParameterInfo中指定的类型的默认值._methods [methodName]返回一个MethodInfo对象.
不幸的是,编译器不喜欢默认(paramType)中的"paramType"位.我很难过.
找不到类型或命名空间名称'paramType'(您是否缺少using指令或程序集引用?)
C:\ Applications\...\MessageReceiver.cs第113行
object blankObject = null;
foreach (var paramInfo in _methods[methodName].Key.GetParameters())
{
if (paramInfo.Name == paramName)
{
Type paramType = paramInfo.ParameterType;
blankObject = (object)default(paramType);
}
}
parameters[i] = blankObject;
Run Code Online (Sandbox Code Playgroud) 我试图在.Net中由于合规性原因(我想使用256位AES和临时密钥)重新排序/删除密码套件.但是,使用WCF TCP传输安全性,我将对安全性的所有控制权转移到Windows的TLS实现及其首选密码.我不想更改系统级密码.
我找到了这个很棒的Microsoft页面,它列出了如何在应用程序级别使用BCryptEnumContextFunctions,BCryptAddContextFunction,BCryptRemoveContextFunction来完成它,但它是所有C和我没有足够的P/Invoke经验来知道从哪里开始.我用谷歌搜索,但没有找到任何人这样做.
MSDN页面上的C++代码片段如下,我需要帮助将它们转换为.Net P/Invoke调用:
BCryptEnumContextFunctions
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
{
HRESULT Status = ERROR_SUCCESS;
DWORD cbBuffer = 0;
PCRYPT_CONTEXT_FUNCTIONS pBuffer = NULL;
Status = BCryptEnumContextFunctions(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
&cbBuffer,
&pBuffer);
if(FAILED(Status))
{
printf_s("\n**** Error 0x%x returned by BCryptEnumContextFunctions\n", Status);
goto Cleanup;
}
if(pBuffer == NULL)
{
printf_s("\n**** Error pBuffer returned from BCryptEnumContextFunctions is null");
goto Cleanup;
}
printf_s("\n\n Listing Cipher Suites ");
for(UINT index = 0; index …Run Code Online (Sandbox Code Playgroud) 目前我正在编写一个C#COM服务器,它将由C++客户端使用.我想在C#代码中引发特定异常时将某个HRESULT返回给C++代码,如下所示
// C# COM Server Code
public void MyMethod()
{
try
{
//Some Processing
}
catch(CertainException e)
{
//I pass in my Own HResult int to the my Custom Exception
MyCustomException ex = new MyCustomException(unchecked((int)0xc00491fe));
throw ex;
}
}
//C++ Code
HRESULT hr = pMyComInstance->MyMethod();
Run Code Online (Sandbox Code Playgroud)
我希望从我的C++代码获得的"hr"是我在C#代码中分配的int,但是我没有获得HRRESULT,而是在C++代码中仍然有例外.
我做错了什么吗?请帮忙..谢谢
我尝试使用webclient将单词'Banana'翻译成rus
private void button1_Click(object sender, EventArgs e)
{
Navigate("http://translate.google.ru/translate_a/t?client=x&text=Banana&hl=en&sl=en&tl=ru");
}
private void Navigate(String address)
{
WebClient client = new WebClient();
client.Proxy = WebRequest.DefaultWebProxy;
client.Credentials = new NetworkCredential("user", "password", "domain");
client.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
string _stranslate = client.DownloadString(new Uri(address));
}
Run Code Online (Sandbox Code Playgroud)
我希望在"_stranslate"中看到
{"sentence":[{"trans":"Банан","orig":"Banana @","translit":"Banan @","src_translit":""}],"src":"en", "server_time":0}
但得到了这个
{"sentence":[{"trans":"вБОБО","orig":"Banana @","translit":"Banan @","src_translit":""}],"src":"en", "server_time":0}
有人能帮我吗?
我看到其他一些人在其他问题中询问此错误消息,但我似乎并不了解为自己解决这个问题的原因.我通过WPF UserControl创建了这个错误
public partial class EnterNewRequest : UserControl
Run Code Online (Sandbox Code Playgroud)
但后来我想为UserControl添加一个方法,所以我使用继承将其粘贴在那里(不能使用扩展,因为我需要覆盖此方法).但是现在我的usercontrol很难过,我不确定xaml中我需要改变什么.UserControl更改块位于命名空间RCO_Manager中.这是我的xaml:
<UserControl x:Class="RCO_Manager.EnterNewRequest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Run Code Online (Sandbox Code Playgroud) Medicare资格EDI示例回应是我想要匹配的.
我有一个看起来像这样的字符串:
LN:SMITHbbbbbbbbFN:SAMANTHAbbBD:19400515PD:1BN:123456PN:9876543210GP:ABCDEFGHIJKLMNOID:123456789012345bbbbbPC:123PH:8005551212CD:123456PB:123ED:20060101TD:2070101LC:NFI:12345678FE:20070101FT:20080101
我需要一组看起来像这样的匹配:
Key | Value ------------------- LN | SMITHbbbbbbbb FN | SAMANTHAbb BD | 19400515 ... etc
我整天都在处理这个问题,而且似乎无法获得可接受的匹配方案.我打算用for循环编程它,如果我想不出来就找到冒号的索引.
我尝试过使用负向前瞻,但我没有到达任何地方.这是C#,我正在测试时使用这个测试器(.Net)和The Regex Coach(非.Net).
我试过用这个:
([\w]{2})\:(?![\w]{2}\:)
Run Code Online (Sandbox Code Playgroud)
但这只匹配键和它们的冒号,如"LN:","FN:"等.
如果我使用:
([\w]{2})\:(.+?)([\w]{2})\:
Run Code Online (Sandbox Code Playgroud)
它也消耗下一个匹配的两个字符键和冒号,导致我只匹配每个其他键/值对.
有没有办法让我在.Net中使用RegEx正确匹配这些,或者我是否坚持使用更程序化的解决方案?请记住,我不能认为键总是大写字母.它们可能包含数字,但它们总是两个字符,然后是冒号.
提前感谢您提供的任何帮助.