我有一个简单的读取txt文件的功能.
AssetManager mngr = getAssets();
InputStream is = mngr.open("textdb.txt");
Run Code Online (Sandbox Code Playgroud)
它适用于我的主要活动.但是如果我在一个单独的类中使用相同的代码,getAssets()只返回null/crash.
我无法找到为什么它只适用于主类.
有任何想法吗?
解:
subClass.ReadSettings(getApplicationContext());
public String[] ReadSettings(Context myContext) {
}
Run Code Online (Sandbox Code Playgroud) 这就是我的目标.我有一个读取html的爬虫,我想知道它什么时候不包含两个字符串.例如.
string firstString = "pineapple"
string secondString = "mango"
string compareString = "The wheels on the bus go round and round"
Run Code Online (Sandbox Code Playgroud)
所以基本上我想知道第一个字符串和第二个字符串何时不在compareString中.
感谢您的帮助!
我有关于.NET连接器的MySqlParameter的这个问题.
我有这个问题:
SELECT * FROM table WHERE id IN (@parameter)
Run Code Online (Sandbox Code Playgroud)
而MySqlParameter是:
intArray = new List<int>(){1,2,3,4};
...connection.Command.Parameters.AddWithValue("parameter", intArray);
Run Code Online (Sandbox Code Playgroud)
这个有可能?是否可以将int数组传递给单个MySqlParameter?另一个解决方案是将int数组转换为类似"1,2,3,4"的字符串,但是当我将它传递给MySqlParameter并将其识别为字符串时,它会像sql查询一样放入"1 \,2 \,3 \,4",这不会返回预期值.
@ UPDATE:似乎mysql连接器团队应该更努力地工作.
我在Windows窗体应用程序项目上收到FileNotFoundException,并显示以下消息:
Run Code Online (Sandbox Code Playgroud)Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
要复制问题:
当我这样做时,程序在行this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
上停止,但有以下异常:
System.IO.FileNotFoundException was unhandled
Message=Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=mscorlib
FileName=System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Run Code Online (Sandbox Code Playgroud)
我在最近安装在Windows 8开发人员预览版上的Visual Studio 2010 SP1上得到了这个.如果我将项目属性更改为目标.Net Framework 4,则错误消失.
在Form1.resx文件中,我可以看到System.Drawing程序集的版本明确声明为2.0:
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" …
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
this.loadMap = function () {
this._map = null;
this._width = 0;
this._height = 0;
this._playerX = 0;
this._playerY = 0;
this.finished = false;
this.loaded = false;
$.ajax({
type: "GET",
url: "maze1.xml",
dataType: "xml",
success: this.parseXmlMap,
context: this
});
};
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
"XMLHttpRequest无法加载file:/// C:/wamp/www/mazegame/maze1.xml.Access-Control-Allow-Origin不允许使用Origin null.
这个相同的脚本在Firefox中运行良好
如何检查一条路径是否是另一条路径的子路径?
只检查子字符串不是一种方法,因为可以有诸如的项目.等等
我正在尝试构建一个代理服务器来处理对内部站点的请求(隐藏原点),但同时检查数据包并异步后处理它们.
例如,假设所有对http://www.foo.com的 SOAP调用都将转到http://192.168.1.1,同时存储在数据库中进行后期分析.内部服务器是一个黑盒子,所以更改它的内容超出了这个问题的范围.
无论如何,我已经配置了ARR,使用反向代理,使用通配符制作URL重写过滤器,所有工作都完美无瑕.然后,我尝试添加一个用C#编写的托管HttpModule,并挂钩到Application_BeginRequest和Application_EndRequest.我能够在最终请求(应用程序池处于集成模式)中访问请求标头,响应标头,甚至能够通过在Response.Filter上设置过滤器来读取输出流中的响应内容,该过滤器将所有写入缓存在附加内存流中.
问题是,当我尝试读取(在模块BeginRequest处理程序内)来自请求的输入流时,ARR会停留一段时间并抛出一个
HTTP错误502.3 - 错误网关操作超时处理程序ApplicationRequestRoutingHandler错误代码0x80072ee2
所以它超时了.
查看失败的请求跟踪我看到:
MODULE_SET_RESPONSE_ERROR_STATUS警告ModuleName ="ApplicationRequestRouting",Notification ="EXECUTE_REQUEST_HANDLER",HttpStatus ="502",HttpReason ="Bad Gateway",HttpSubStatus ="3",ErrorCode ="2147954402",ConfigExceptionInfo =""SET_RESPONSE_ERROR_DESCRIPTION警告ErrorDescription ="操作时间到"
现在网上的任何类似帖子都没有帮助,因为这不是超时错误(代理有120秒设置,页面答案不到100毫秒),以及我评论试图读取FORM数据的处理程序代码的那一刻或者InputStream数据,一切都可以作为魅力.
即使我在读取后将输入流的位置设置为0,我仍然会有超时.如果我在EndRequest上读取输入流,它将获得0个字节,即使它是POST请求.(这显然是错的)
ARR是否有一个错误,我尝试在尝试重新路由之前尝试读取输入流?
使用的东西:Windows Server 2008 R2 IIS 7.5 ARR v2 .Net Framework 3.5模块
想法?谢谢/ Cosmin
我的应用程序正在调试模式下执行,然后发生死锁.有没有办法在死锁或至少最后一个被调用的方法之前看到堆栈跟踪?
我有资源中的StoryBoard
<Window.Resources>
<Storyboard x:Key="Fading" Storyboard.TargetName="NotifyWindow" Storyboard.TargetProperty="Opacity" >
<DoubleAnimation From="1" To="0" Duration="0:0:1">
</DoubleAnimation>
</Storyboard>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
在WindowClosing上我有下一个代码
private void NotifyWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Storyboard fading = this.Resources["Fading"] as Storyboard;
if (fading != null && !fadingCompleted)
{
fading.Completed += FadingStoryBoard_Completed;
fading.Begin();
e.Cancel = true;
}
}
private void FadingStoryBoard_Completed(object sender, EventArgs e)
{
fadingCompleted = true;
Close();
fadingCompleted = false;
}
Run Code Online (Sandbox Code Playgroud)
这很好,但我想将这个故事板移动到另一个组件.所以我需要指定StoryBoard.TargetName
表单代码.我怎样才能做到这一点?
我的想法是通过C#(3.5)Winforms应用程序通过MySQL .NET Connector 6.2.2与MySQL数据库交谈,为Insert/Update/Select创建一些通用类.
例如:
public void Insert(string strSQL)
{
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(strSQL, connection);
cmd.ExecuteNonQuery();
this.CloseConnection();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,从程序的任何地方我都可以通过传递SQL查询字符串来运行带/不带用户输入的查询.
在SO上阅读开始告诉我这可能导致SQL注入攻击(对于任何用户输入值).无论如何擦除输入的strSQL还是我需要在每个需要执行数据库功能的方法中创建单独的参数化查询?
UPDATE1:
我的最终解决方案看起来像这样:
public void Insert(string strSQL,string[,] parameterValue)
{
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(strSQL, connection);
for(int i =0;i< (parameterValue.Length / 2);i++)
{
cmd.Parameters.AddWithValue(parameterValue[i,0],parameterValue[i,1]);
}
cmd.ExecuteNonQuery();
this.CloseConnection();
}}
Run Code Online (Sandbox Code Playgroud)