我需要通过 EIP-191 在 C# 中签名消息

I need sign message in C# via EIP-191

c# 签名不等于 node.js 签名

node.js 产生正确的结果

我在node.js

中有代码
import { Wallet, utils } from 'ethers'

const privateKey = '0xcd180f4628bf1fceb5ab9e2e22df38d6d1dee52667926c997c58a318890aa4ee'
const wallet = new Wallet(privateKey)
const body = '{"jsonrpc":"2.0","method":"eth_sendBundle","params":[{see above}],"id":1}'
const signature = wallet.address + ':' + wallet.signMessage(utils.id(body))

console.log(wallet.address)
console.log(utils.id(body))
console.log(wallet.signMessage(utils.id(body)))

我得到了结果(正确)

0xB0D23E7099C128fbeee8E097a776ED73d50c7656 0x311d6d3d0466023c1dc327266ba7294cc8ee18b2ab81b0de3ef97ee1af10ecb6

Promise { '0xad2b2e1352d4ebc7f870359feb3efd14f6f43f20002a20d1eada609d8f9b878f27606bee58c4403550555925e4b0ce48cb4653bbd077589da0e8a689b4ea9e161b' }

我正在尝试登录 c#,keccack 匹配但没有签名

我得到结果

0x9364eb479cda8fb4a70cae68233aa3b866d5c49366a701029e4f7b745ff1f0ac300e206e64061d43ca3a18b072c51575bcef559eb109f95b4743d68c8f6a79cd1c

C# 代码(Nethereum 库)

var ecKey = new EthECKey("0xcd180f4628bf1fceb5ab9e2e22df38d6d1dee52667926c997c58a318890aa4ee");
var json = "{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendBundle\",\"params\":[{see above}],\"id\":1}";
var keccack = Sha3Keccack.Current.CalculateHash(json).HexToByteArray();

var signer = new EthereumMessageSigner();
var hash = signer.Sign(keccack, ecKey);
Console.WriteLine(hash);
var ecKey = new EthECKey("0xcd180f4628bf1fceb5ab9e2e22df38d6d1dee52667926c997c58a318890aa4ee");
var json = "{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendBundle\",\"params\":[{see above}],\"id\":1}";
var keccack = Sha3Keccack.Current.CalculateHash(json).HexToByteArray();
    
var signer = new EthereumMessageSigner();
var hash = signer.EncodeUTF8AndSign(keccack.ToHex(true), ecKey);
Console.WriteLine(hash);