我想读取X-Forwarded-For请求中标头值的值.
我试过了
HttpContext.Current.Request.Headers["X-Forwarded-For"].Split(new char[] { ',' }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
在C#中.
或者我需要拆分标头":"并取第二个字符串吗?维基百科说,我这是在问这个问题
该字段的一般格式为:X-Forwarded-For:client1,proxy1,proxy2
我注意到在我的应用程序的user.config文件以某种方式损坏并在打开时为空的几台机器上.我似乎无法弄清楚为什么会这样.是否有一个常见的事情会导致这种情况?有什么方法可以安全地防止这个
我的第二个问题是如何恢复状态?我捕获异常并删除user.config文件,但我找不到一种方法来恢复配置而不重新启动应用程序.我在Properties对象上执行的所有操作都会导致以下错误:
"配置系统无法初始化"
重置,重新加载和升级都无法解决问题.
这是我在异常后删除的代码:
catch (System.Configuration.ConfigurationErrorsException ex)
{
string fileName = "";
if (!string.IsNullOrEmpty(ex.Filename))
fileName = ex.Filename;
else
{
System.Configuration.ConfigurationErrorsException innerException = ex.InnerException as System.Configuration.ConfigurationErrorsException;
if (innerException != null && !string.IsNullOrEmpty(innerException.Filename))
fileName = innerException.Filename;
}
if (System.IO.File.Exists(fileName))
System.IO.File.Delete(fileName);
}
Run Code Online (Sandbox Code Playgroud) 根据我的经验,.NET比本机代码慢2到3倍.(我实施了L-BFGS进行多变量优化).
我已经在stackoverflow上跟踪广告到 http://www.centerspace.net/products/
速度真的很惊人,速度接近原生代码.他们怎么能这样做?他们说:
问:NMath是"纯粹的".NET吗?
答:答案在某种程度上取决于您对"纯.NET"的定义.NMath是用C#编写的,加上一个小的Managed C++层.但是,为了更好地执行基本线性代数运算,NMath确实依赖于本机Intel Math Kernel Library(包含在NMath中).但是没有COM组件,没有DLL - 只是.NET程序集.此外,在托管C++层中分配并由本机代码使用的所有内存都从托管堆中分配.
有人可以向我解释一下吗?
我有一个带文本框控件的WPF窗口.该控件具有一个装饰器,当文本框具有键盘焦点时,该装饰器可见.
正如您在下面的屏幕截图中看到的那样,装饰器仅限于窗口的边界.如何才能显示完整的装饰?
Adorner模板是:
<DataTemplate x:Key="ContextualInfoDataTemplate">
<Border
Background="#E1E1E1"
CornerRadius="6"
Margin="50,36,0,0">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
<Grid Width="200" Margin="4,3,4,4">
<TextBlock TextWrapping="Wrap" Text="OverridenAutomationId"/>
</Grid>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用小吃栏和FAB同一页,每当Snackbar显示浮动操作按钮不上升.
我使用第三方库attachToListView工作正常
import com.melnykov.fab.FloatingActionButton;
Run Code Online (Sandbox Code Playgroud)如果我使用默认库"无法解析attachToListView"
import android.support.design.widget.FloatingActionButton;
Run Code Online (Sandbox Code Playgroud)
我的需要:
attachToListView应该工作(当Listview向下滚动FAB时将消失).
每当Snackbar显示浮动操作按钮时应该上升.
帮帮我如何解决这个问题.
编辑:1
我删除了第三方库添加了默认导入(导入android.support.design.widget.FloatingActionButton),FAB正在上升但是Attachtolistivew没有解决.
编辑:2
我使用Listview在我的活动中,使用FAB和Snackbar.所以我需要像FAB一样的两个选项在Snackbar打开时以及当Listview向下滚动时应该隐藏FAB.
我的SnackBar代码:
Snackbar snack = Snackbar.make(fab1, " Successfully ...!",Snackbar.LENGTH_SHORT);
View snackbarView = snack.getView();
snackbarView.setBackgroundColor(Color.parseColor("#f44336"));
snack.show();
Run Code Online (Sandbox Code Playgroud)
Main.java
import com.melnykov.fab.FloatingActionButton;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.fabview);
fab1 = (FloatingActionButton) findViewById(R.id.fab);
fab1.setShadow(true);
//fab.attachToListView(provider_service_list);
//FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab1.attachToListView(listViewData, new ScrollDirectionListener()
{
@Override
public void onScrollDown() {
Log.d("ListViewFragment", "onScrollDown()"); …Run Code Online (Sandbox Code Playgroud) 我只是想找到一种方法来控制TreeView节点通过它们绑定的对象的扩展/折叠.该对象具有一个IsExpanded属性,我想使用它来显示TreeView基于该属性展开或折叠的节点本身.
这是我的代码:
C#:
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
this.DataContext = new List<Parent>() { Base.GetParent("Parent 1"), Base.GetParent("Parent 2") };
}
}
public class Base
{
public string Name { get; set; }
public bool IsExpanded { get; set; }
public static Parent GetParent(string name)
{
Parent p = new Parent() { Name = name };
p.Children.Add(new Child() { Name = "Child 1", GrandChildren = new ObservableCollection<GrandChild>() { new GrandChild() …Run Code Online (Sandbox Code Playgroud) 我使用HTTP GET在浏览器中下载zip文件,例如 https://example.com/up/DBID/a/rRID/eFID/vVID(不是确切的URL)
现在,当我尝试在桌面应用程序中使用C#代码(与上面相同的GET方法)进行相同的下载时,下载的zip文件不是有效的存档文件.当我在记事本中打开此文件时,它是一些HTML页面.
我想我没有正确设置一些标题.我四处寻找例子.我发现了几个wrt上传,但没有看到任何下载.
码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/zip";
try
{
HttpWebResponse res = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default))
{
StreamWriter oWriter = new StreamWriter(@"D:\Downloads\1.zip");
oWriter.Write(sr.ReadToEnd());
oWriter.Close();
}
res.Close();
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud) 我对IoC框架很陌生,所以请原谅术语.
所以我所拥有的是一个带有Nininject MVC参考的MVC项目.我的项目中有其他类libarys,例如Domain层,我希望能够在那里使用Ninject框架,但我的所有绑定都在MVC项目NinjectWebCommon.cs的App_Start文件夹下:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IHardwareService>().To<WindowsHardwareService>();
kernel.Bind<IStatusApi>().To<StatusApiController>();
}
Run Code Online (Sandbox Code Playgroud)
目前在我的类库中我使用构造函数注入,但有时我不得不对依赖项进行硬编码:
var service = new WindowsHardwareService();
Run Code Online (Sandbox Code Playgroud)
当我希望能够做到以下几点时:
IKernel kernel = new StandardKernel(.....);
var context = kernel.Get<IHardwareService>();
Run Code Online (Sandbox Code Playgroud)
我没有做以下因为我没有任何模块?我读过的所有文档主要针对的是常规Ninject库而不是MVC版本.
我需要做什么,以及如何将常规Ninject库与MVC版本一起使用?
更新
这是我尝试过的:
这样做的目的是使每个项目都可以加载模块并获得当前注入的接口.
App_Start/NinjectWebCommon.cs(在MVC项目中)
private static void RegisterServices(IKernel kernel)
{
var modules = new IoCModules();
var newKernal = modules.GetKernel();
kernel = newKernal;
}
Run Code Online (Sandbox Code Playgroud)
IoCModules.cs(在Project.Ioc项目中)
public class IoCModules
{
public IKernel GetKernel()
{
var modules = new CoreModule();
return modules.Kernel;
}
}
Run Code Online (Sandbox Code Playgroud)
CoreModule.cs(在Project.IoC.Modules项目中)< - …
首先,这有点被问过.但是我无法修改它以符合我的要求.
简而言之:我想要一个与表达式匹配的正则表达式,当且仅当它只包含数字时,表达式中某处有5个(或更多)连续数字.
我理解的逻辑
^(?=\d{5}$)1*2*3*4*5*6*7*8*9*0*$
Run Code Online (Sandbox Code Playgroud)
但是,这会将表达式限制为5位数.我希望能够在表达式之前和之后成为数字.所以1111345671111应该匹配,而不11111应该.
我认为这可行:
^[0-9]*(?=\d{5}0*1*2*3*4*5*6*7*8*9*)[0-9]*$
Run Code Online (Sandbox Code Playgroud)
我解释为:
^$:整个表达式必须只包含这两个符号之间的内容
[0-9]*:0- 9,0或更多次之间的任何数字后跟:
(?=\d{5}0*1*2*3*4*5*6*7*8*9*):找到至少5个增加数字的部分,后跟:
[0-9]*:0- 9,0或更多次之间的任何数字.
但是这个正则表达式是不正确的,例如11111匹配.如何使用正则表达式解决此问题?所以要匹配的表达式示例:
0000145900012345这应该不匹配:
abc123459871234444c# ×5
wpf ×2
.net ×1
adorner ×1
android ×1
app-config ×1
asp.net ×1
asp.net-mvc ×1
collapse ×1
data-binding ×1
delphi ×1
download ×1
expand ×1
get ×1
http ×1
managed-c++ ×1
managed-code ×1
ninject ×1
nmath ×1
regex ×1
treeview ×1