我找到了一种直接从VBA宏调用.NET 2代码的方法:
Dim clr As mscoree.CorRuntimeHost
Set clr = New mscoree.CorRuntimeHost
clr.Start
Dim domain As mscorlib.AppDomain
clr.GetDefaultDomain domain
Dim myInstanceOfDotNetClass As Object
Set myInstanceOfDotNetClass = domain.CreateInstanceFrom("SomeDotNetAssembly.dll", "Namespace.Typename").Unwrap
Call myInstanceOfDotNetClass.ExecuteSomeDotNetMethod
Run Code Online (Sandbox Code Playgroud)
(为了使这段代码工作,我想在Excel中使用工具 - >引用...将对mscoree.tlb和mscorlib.tlb的引用添加到Excel VBA)
但这仅适用于.NET CLR 2程序集,最高可达.NET Framework 3.5版.
现在我需要使用.NET 4.
我已经了解.NET CLR4引入了另一种与版本无关的创建运行时实例的方法,我还发现了一个用C++编写的相当简单的代码示例:http: //dev.widemeadows.de/2014/02/ 04 /托管最净-4-运行时在-一个天然过程/
但是我的Excel VBA技能还不足以将这几行代码转换为工作的VBA makro.有人能帮帮我吗?
我正在尝试将json(这里是链接到http://antica.e-sim.org/apiFights.html?battleId=3139&roundId=1)反序列化为对象列表.
这是我的班级:
public class RootObject
{
public int Damage { get; set; }
public int Weapon { get; set; }
public bool Berserk { get; set; }
public bool DefenderSide { get; set; }
public double MilitaryUnitBonus { get; set; }
public int Citizenship { get; set; }
public int CitizenId { get; set; }
public bool LocalizationBonus { get; set; }
public string Time { get; set; }
public int MilitaryUnit { get; set; }
}
public …Run Code Online (Sandbox Code Playgroud)