小编olo*_*tus的帖子

C#:python try/catch/else块的等价物

在Python中,有一个有用的异常处理代码:

try:
    # Code that could raise an exception
except Exception:
    # Exception handling
else:
    # Code to execute if the try block DID NOT fail
Run Code Online (Sandbox Code Playgroud)

我认为能够将可能引发的代码与普通代码分开是很有用的.在Python中,这可能如上所示,但是我在C#中找不到类似的东西.

假设该特征或类似特征不存在,将标准代码放入try块中或块之后是标准做法catch吗?

我问的原因是因为我有以下代码:

if (!IsReadOnly)
{
    T newobj;
    try
    {
        newobj = DataPortal.Update<T>(this);

        List<string> keys = new List<string>(BasicProperties.Keys);
        foreach (string key in keys)
        {
            BasicProperties[key] = newobj.BasicProperties[key];
        }
    }
    catch (DataPortalException)
    {
        // TODO: Implement DataPortal.Update<T>() recovery mechanism
    }
}
Run Code Online (Sandbox Code Playgroud)

这需要普通代码在try块中,否则如果引发异常并随后处理,newobj则会被取消分配,但是在try块中有这么多代码并且与之无关,这感觉非常不自然DataPortalException.该怎么办?

谢谢

c# python exception try-catch

7
推荐指数
3
解决办法
3485
查看次数

Silverlight中的配置文件

我正在为Seesmic Desktop 2编写一个插件,这是我第一次使用Silverlight,我有一个问题:

编写Windows应用程序时,我们有应用程序配置文件,例如用于存储配置值的MyApp.exe.config,对于Web,我们有Web.config.对于Silverlight,似乎没有相同的东西.好吧,有不一样的激励,因为你必须解压缩.xap包来访问它,但即便如此......

我的问题是我有数据,例如JSON web服务enpoint URI,我觉得直接嵌入代码中感到不舒服,因为它们通常会进入.config文件.对于SL,有没有相同的方法?

c# silverlight configuration visual-studio

7
推荐指数
1
解决办法
6439
查看次数

C#:有没有办法轻松查找/更新对象的所有引用?

我一直在阅读Rockford Lhotka的"Expert C#2008 Business Objects",其中有一个数据门户网站可以很好地抽象出数据的来源.当使用DataPortal.Update(this)时,正如您可能猜测的那样,将"this"持久存储到数据库中,将返回一个对象 - 持久化的"this"以及db对其所做的任何更改,例如.时间戳.

Lhotka经常写得非常随意,你必须确保将对旧对象的所有引用更新为新返回的对象.有道理,但有没有一种简单的方法来查找旧对象的所有引用并更改它们?GC显然跟踪参考文献,是否可以利用它?

干杯

.net c# garbage-collection reference

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

Jest 中跨根目录的相对导入

rootDirs文件的元素将tsconfig.json多个物理目录合并到一个虚拟目录中。

这适用于相对导入,因此具有以下文件/文件夹结构

  • src/
    • main/
      • file.ts
    • test/
      • file.test.ts

以及以下内容tsconfig.json

{
    "compilerOptions": {
        "rootDirs": [
            "src/main",
            "src/test"
        ],
        "moduleResolution": "node"
    }
}
Run Code Online (Sandbox Code Playgroud)

并进行以下导入file.test.ts

import { something } from "./file"
Run Code Online (Sandbox Code Playgroud)

导入会发现file.ts

但是,如果我file.test.ts在 Jest 中运行,它会失败并出现以下错误

Cannot find module './file' from 'test/file.test.ts'
Run Code Online (Sandbox Code Playgroud)

Jest / ts-jest 是否支持类似于 TypescriptrootDirs元素的东西?我尝试了该roots元素,但它没有解决问题。

typescript jestjs ts-jest

6
推荐指数
0
解决办法
280
查看次数