小编Edu*_*hov的帖子

使用 Roslyn 解析运行时生成类型的 lambda 表达式

我正在尝试使用 Roslyn 作为解析用户在运行时使用通用格式提供的 lambda 表达式的一种方式:

// The first line is normally static and re-used across callers to save perf
Script baseScript = CSharpScript.Create(string.Empty, scriptOptions);
ScriptState<T> scriptState = await baseScript.ContinueWith<Expression<Func<T, bool>>>(code, scriptOptions).RunAsync()
var parsedExpression = scriptState.ReturnValue;
Run Code Online (Sandbox Code Playgroud)

然后调用者提供code类似P => P.Property > 5. 当我为 T 使用众所周知的类型时,这一切都很好,但我希望允许用户使用更多动态类型,其中每个用户都可以定义自己的一组属性(带有类型)。同步表达式树不支持动态类型(因此 Roslyn 无法编译),我希望允许用户定义他们的属性,并且我会动态生成运行时类型。

我遇到的问题是,在创建运行时类型后,我没有具体的类型可用于Tin .ContinueWith<Expression<Func<T,bool>>>

我使用 full on 反射做类似的事情:

var funcType = typeof(Func<,>).MakeGenericType(runtimeType, typeof(bool));
var expressionType = typeof(Expression<>).MakeGenericType(funcType);

var continueWith = script.GetType()
    .GetMethods()
    .Single(m => m.Name == "ContinueWith" && m.IsGenericMethod && …
Run Code Online (Sandbox Code Playgroud)

c# runtime-compilation roslyn

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

htmlWebpackPlugin仅向生成的html添加一个入口点

以下是webpack配置条目:

entry:{
    background: './app/main/background.js',
    options: './app/main/options.js'
}
Run Code Online (Sandbox Code Playgroud)

提供给htmlwebpackplugin的一个HTML页面如下

new HtmlWebpackPlugin({
    template :'./app/templates/options.html',
    // chunks : ['jquery','angular','app'],
    filename: "./options.html",
    cache : true
}),
Run Code Online (Sandbox Code Playgroud)

这导致注入两个background.jsoptions.jsoptions.html页面如下图所示:

 <script type="text/javascript" src="js/background.js"></script><script type="text/javascript" src="js/options.js"></script></body>
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以将其限制为仅一个JS文件或指定要在html页面中注入的文件名?

plugins html-webpack-plugin webpack-2

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

在 Xamarin 中的活动之间传递数据

我无法将 MainActivity 中的数据共享到 Welcome 活动,即使我遵循了此页面的说明:https : //developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/

主活动(Activity1)

Button button = FindViewById<Button>(Resource.Id.send);
EditText myName = FindViewById<EditText>(Resource.Id.name);
string name = myName.Text;

button.Click += delegate { 
    var welcome = new Intent(this, typeof(Welcome));
    welcome.PutExtra("name", name);
    StartActivity(welcome);
};
Run Code Online (Sandbox Code Playgroud)

欢迎(活动2)

string name = Intent.GetStringExtra("name") ?? "Data not available";
Run Code Online (Sandbox Code Playgroud)

我得到空值,不知道为什么。有什么建议或建议吗?

c# android xamarin

3
推荐指数
1
解决办法
1369
查看次数

将字节数组转换为分隔字符串

我正在尝试将字节数组转换为以逗号分隔的字符串。我只想将 de 字节的值转换为字符串,以便我可以通过 TCP 将字符串发送到另一台电脑。

这是我现在正在运行的代码,它正在运行,但速度太慢(字节数组有 50000 个元素)。你有什么更好的主意吗?

谢谢。

byte[] bytes = (byte[])dt.Rows[0]["LNL_BLOB"];
string foto="";

foreach (byte b in bytes)
{
   foto = foto + "," + b.ToString();
}
Run Code Online (Sandbox Code Playgroud)

c# arrays

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