Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:''系统__ComObject"不包含"Language"的定义
有人知道为什么我总是犯这个错误吗?我在youtube视频上发现了这个代码,用来制作计算器。请帮忙。
private void result_Click(object sender, RoutedEventArgs e)
{
result.Background = Brushes.BlueViolet;
Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC"));
dynamic obj = Activator.CreateInstance(scriptType, false);
obj.Language = "javascript";
string str = null;
try
{
var res = obj.Eval(screen.Text);
str = Convert.ToString(res);
screen.Text = screen.Text + "=" + str;
}
catch (SystemException)
{
screen.Text = "syntax error";
}
您可能遇到了这个问题:https://github.com/dotnet/runtime/issues/13274
感谢您报告此问题。.NET Core 3.0不支持对COM对象使用动态关键字。正在跟踪此问题https://github.com/dotnet/coreclr/issues/24246对于.Net 5。解决方法是将类强制转换为相应的接口。
只需确保com对象和相应的接口中有一个语言定义。