Tag: .net

如何让silverlight从MySQL获取数据

我在Silverlight中编写了一个小型的hello world测试应用程序,我想在Linux / Apache2服务器上托管。 我希望数据来自MySQL(或其他一些兼容Linux的数据库),以便我可以数据绑定到数据库中的内容。 我已经设法通过使用MySQL Connector / .NET来实现它 : MySqlConnection conn = new MySqlConnection(“Server=the.server.com;Database=theDb;User=myUser;Password=myPassword;”); conn.Open(); MySqlCommand command = new MySqlCommand(“SELECT * FROM test;”, conn); using (MySqlDataReader reader = command.ExecuteReader()) { StringBuilder sb = new StringBuilder(); while (reader.Read()) { sb.AppendLine(reader.GetString(“myColumn”)); } this.txtResults.Text = sb.ToString(); } 如果我给已发布的ClickOnce应用程序完全信任(或至少是SocketPermission)并在本地运行它,这可以正常工作 。 我希望这在服务器上运行,我无法让它工作,总是以权限exception结束(不允许SocketPermission)。 数据库与Silverlight应用程序托管在同一服务器上,如果这有任何区别的话。 编辑好的,我现在明白为什么在客户端应用程序中显示数据库凭据是一个坏主意(显然)。 人们如何做到这一点呢? 如何保护代理Web服务,以便以安全的方式将数据传入和传出客户端/数据库? 网上有没有任何例子? 当然,我不能成为第一个使用数据库为Silverlight应用程序提供支持的人?

Oracle.DataAccess.Client依赖项

首先,我想使用Oracle.DataAccess.dll来使用OracleBulkCopy 。 我想知道我需要能够从数据库中读取的所有dll,然后在Oracle中执行批量复制。 目前,我们只使用一个dll来执行数据库的所有读取,我们使用的是Oracle.ManagedDataAccess.Client 。 但我不能用它来执行bulkCopy。 我不想为用户安装ODP.NET,我想直接在程序中包含dll。 所以我想知道能够在32位和64位中使用Oracle.DataAccess.dll所需的最低dll。 我知道有一些关于这个的老post,但它很安静,列出的dll已经过时了。 我无法找到其中一些事件。 我为ODAC12安装了ODP.net,我在这篇文章中检索了所有列出的dll。 我也尝试过这篇文章 。 列出的dll指出版本11。 我做了一个虚拟项目,打开一个连接,读取一个表并在另一个表中进行批量处理。 我从项目根目录中的post中复制了列出的dll,并在项目中包含了Oracle.DataAccess.dll 。 当我以64位运行我的程序时,我收到以下错误: 无法加载文件或程序集’Oracle.DataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342′ 当我以32位运行它时,我收到此错误: 无法加载DLL’OraOps12.dll’:找不到指定的模块。 (HRESULTexception:0x8007007E)“ 我包括的dll是: OCI.DLL OCIW32.DLL Oracle.DataAccess.dll orannzsbb12.dll oraocci12.dll oraociei12.dll OraOps12.dll

并行的foreach循环 – 奇怪的行为

下面的代码只是创建一个List> of random numbers,然后计算并行foreach循环中每个列表的累积和。 为什么我得到的数字少于’numLists’? 通常在9990左右。我猜它与线程安全有关。 什么是替代方法? (我是C#初学者,所以希望我使用正确的术语)谢谢。 using System; using System.Collections.Generic; using System.Threading.Tasks; namespace testParallelForeach { class Program { static void Main(string[] args) { List<List> bsData = new List<List>(); List<List> cumsumDataP = new List<List>(); int numLists = 10000; int myLen = 400; Random rand = new Random(); for (int i = 0; i < […]

为log4net配置自定义事件日志

我正在使用log4net进行日志记录(呃!)。 使用EventLogAppender,我可以配置我的应用程序名称,以便我的事件将显示在应用程序/“我的应用程序名称”事件日志中。 但是,我想将事件记录到“其他事件日志”/“我的应用程序名称”。 我该如何配置? 当前配置: 对于EventLogInstaller,代码如下所示: eventLogInstaller.Log = “Some other event log”; // Default “Application” eventLogInstaller.Source = “My application name”;

通过函数指针在C#中调用C函数

我的C程序中有一个静态函数,该地址被传送到C#.NET程序。 地址是正确的,但可以在C#中调用此函数吗? 有一些代码: static void test_callback() { printf(“test_callback called\n”); } void callCSharpFunction () { HRESULT status; BOOL Started; DWORD result; char ptr[5]; int p1; Started = FALSE; status = CorBindToRuntimeEx( NULL, NULL, 0, &CLSID_CLRRuntimeHost, &IID_ICLRRuntimeHost, (PVOID *)&Host ); if (FAILED(status)) {} status = ICLRRuntimeHost_Start(Host); if (FAILED(status)) {} Started = TRUE; p1 = (int)(&test_callback); ptr[0] = […]

如何在控制台应用程序中从Task.WaitAll()获取返回值?

我使用控制台应用程序作为概念certificate和获得异步返回值的新需求。 我发现我需要在main方法中使用Task.WaitAll()来避免需要异步“main()”方法,这是非法的。 我现在卡住试图弄清楚允许我使用generics的重载,或者只返回我可以强制转换的对象,但是在Main()中。

如何在非UI线程中编辑WritableBitmap.BackBuffer?

我的应用程序运行CPU重的algorythms编辑放置在WPF窗口的图像。 我需要在后台线程中完成编辑。 但是,尝试在非UI线程中编辑WritableBitmap的BackBuffer会引发InvalidOperationException。 private WriteableBitmap writeableBitmap; private void button1_Click(object sender, RoutedEventArgs e) { // Create WritableBitmap in UI thread. this.writeableBitmap = new WriteableBitmap(10, 10, 96, 96, PixelFormats.Bgr24, null); this.image1.Source = this.writeableBitmap; // Run code in non UI thread. new Thread( () => { // ‘Edit’ bitmap in non UI thread. this.writeableBitmap.Lock(); // Exception: The calling […]

List 线程安全上的Parallel.ForEach

就线程安全问题而言,可以做或者我需要使用不同的集合吗? List fileInfo = getList(); Parallel.ForEach(fileInfo, fileMember => { //Modify each fileMember }

log4net:动态创建记录器,我应该担心什么吗?

我需要动态创建记录器,所以有了这里的post和reflection器的帮助我已经设法动态创建记录器,但我想知道我是否应该担心别的……我不知道其含义可以做到。 public static ILog GetDyamicLogger(Guid applicationId) { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); RollingFileAppender roller = new RollingFileAppender(); roller.LockingModel = new log4net.Appender.FileAppender.MinimalLock(); roller.AppendToFile = true; roller.RollingStyle = RollingFileAppender.RollingMode.Composite; roller.MaxSizeRollBackups = 14; roller.MaximumFileSize = “15000KB”; roller.DatePattern = “yyyyMMdd”; roller.Layout = new log4net.Layout.PatternLayout(); roller.File = “App_Data\\Logs\\”+applicationId.ToString()+”\\debug.log”; roller.StaticLogFileName = true; PatternLayout patternLayout = new PatternLayout(); patternLayout.ConversionPattern = “%date [%thread] %-5level […]

使用Reflection捕获方法状态

有没有办法使用.NETreflection来捕获所有参数/局部变量的值?