1

我在 vs2010 中有一个解决方案,其中包含 3 个项目 - 业务对象、API、Web 应用程序。

业务对象使用原始 ADO 从 SQLServer 填充,并使用 CSLA 在各个层上进行序列化。Web 应用程序和 API 都具有对业务对象的项目引用。

一个特定的业务对象包含一个 Guid,从 ADO 填充到一个私有字段并通过公共 getter 访问,即只读。当我通过网络应用程序使用它时,它可以正常工作,当我通过 api 访问它并尝试用它做任何事情时,它总是填充 value 00000000-0260-0251-6002-510200000000

调试服务调用显示属性正确填充了我期望从数据库中获得的值(悬停在属性上,使用即时窗口,快速监视等)但是如果我尝试将此 guid 分配给另一个变量或将其作为参数传递给另一个方法传递或分配的值总是变成00000000-0260-0251-6002-510200000000.

业务对象(有很多)上的所有其他 guid 都可以正常工作,它们都以相同的方式被检索和访问。不管我加载哪个对象,甚至我连接到哪个数据库,这个总线对象上的这个属性总是分配这个值。

这是在开发和调试模式下,不是调试器感到困惑。我什至在我们的 TFS 构建服务器上构建了它,并将生成的 API dll 部署在单独的应用程序服务器上。结果相同,因此与在我的开发机器上专门构建或运行无关。

我在各种 Guid 构造函数中处理了字符串和字节数组的解析。结果相同。我已经进入了 MSIL,分配 guid 的调用看起来与分配 Guid 的所有其他调用相同。没有什么不寻常的。从数据库调试业务对象负载看起来不错,正如我所说,在我尝试用它做某事之前,该值是我所期望的。该属性非常简单——实际上只是一个返回_privateField,没有特殊处理或任何东西。它可以通过网络应用程序正常工作,并且它们指向同一个 dll!

谷歌搜索“ 00000000-0260-0251-6002-510200000000”一无所获——它似乎没有任何特殊含义。

几乎我的智慧就此结束,我想不出更多的选择来探索。谁能想到这里可能发生的事情或对00000000-0260-0251-6002-510200000000任何人都意味着什么?

4

0 回答 0