问题列表 - 第26554页

我应该将主要版本号放入C#/ Java命名空间吗?

我正在为WCF Web服务设计一组"服务"层对象(数据对象和接口定义)(将由第三方客户端使用,即不在内部,因此在我的直接控制之外).

我知道我不会完全正确地获得接口定义 - 并且我想要准备时间,因为我知道我将不得不介绍一组新的数据对象.然而,我所处的世界的现实是,我还需要同时运行我的第一个版本.

我的服务的第一个版本将具有http://host/app/v1service.svc的 URL

当新版本到来时,它们将存在于 http://host/app/v2service.svc

但是,当谈到数据对象和接口时,我很想将接口号的"主要​​"版本放入类的实际命名空间中.

namespace Company.Product.V1
{
   [DataContract(Namespace = "company-product-v1")]
   public class Widget
   {
        [DataMember]
        string widgetName;
   }

   public interface IFunction
   {
       Widget GetWidgetData(int code);
   }
}
Run Code Online (Sandbox Code Playgroud)

当需要对服务进行根本性改变时,我将介绍一些类似的课程

namespace Company.Product.V2
{
   [DataContract(Namespace = "company-product-v2")]
   public class Widget
   {
        [DataMember]
        int widgetCode;

        [DataMember]
        int widgetExpiry;
   }

   public interface IFunction
   {
       Widget GetWidgetData(int code);
   }
}
Run Code Online (Sandbox Code Playgroud)

我认为它的优点是我可以使用一组代码为两个接口版本提供服务,并在可能的情况下共享功能.这是因为我将能够将两个接口版本作为一组不同的C#对象引用.类似地,客户端可以同时使用两个接口版本,可能在一些遗留代码中使用V1.Widget,而新位移动到V2.Widget.

有谁能说出为什么这是一个愚蠢的想法?我有一种唠叨的感觉,这有点臭...

注意:我显然不建议每个新版本的服务都在新的命名空间中.据推测,我将尽可能多地进行非破坏性的界面更改,但我知道我将在所有数据建模中可能需要进行重大改写.

我理解汇编版本控制等,但我认为这个问题与那种版本控制相关.但我可能是错的.

c# oop web-services

5
推荐指数
1
解决办法
1125
查看次数

连接条件取决于参数

我是一个sql新手,我使用的是mssql2005

我喜欢在输入参数上加入Action depnding.

CREATE PROCEDURE SelectPeriodicLargeCategoryData 
    @CATEGORY_LEVEL CHAR(1),
    @CATEGORY_CODE VARCHAR(9)
AS

...


JOIN CATEGORY_AD_SYS CAS WITH(NOLOCK)
ON CA.CATEGORY_ID = [[[[[   HERE      ]]]]
Run Code Online (Sandbox Code Playgroud)

在sql之上.
如果@CATEGORY_LEVEL = 'L'那时我喜欢加入 CAS.LCATEGORY

否则,如果@CATEGORY_LEVEL = 'M'我愿意加入 CAS.MCATEGORY

否则,如果@CATEGORY_LEVEL = 'S'我愿意加入 CAS.SCATEGORY

...

我怎样才能做到这一点?

sql t-sql stored-procedures sql-server-2005

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

从 oracle 读取 blob 的前 1kb

我希望只提取存储的 blob 的前 1024 个字节,而不是整个文件。这样做的原因是我只想尽快从文件中提取元数据,而不必选择整个 blob。

我明白以下几点:

select dbms_lob.substr(file_blob, 16,1) 
from file_upload 
where file_upload_id=504;
Run Code Online (Sandbox Code Playgroud)

它以十六进制形式返回。我该怎么做才能在不选择整个 blob 的情况下以二进制数据形式返回它?

提前致谢。

oracle select blob

2
推荐指数
1
解决办法
3814
查看次数

RTOS常用的设计模式(VXworks)

任何人都可以帮我解决RTOS常用的设计模式吗?
在VXworks中,哪种模式更可取?

c c++ embedded rtos vxworks

0
推荐指数
2
解决办法
2381
查看次数

将字符数组转换为const gchar*

我有一个包含字符串的字符数组:

char buf[MAXBUFLEN];
buf[0] = 'f';
buf[1] = 'o';
buf[2] = 'o';
buf[3] = '\0';
Run Code Online (Sandbox Code Playgroud)

我希望将此字符串作为参数传递给gtk_text_buffer_insert函数,以便将其插入到GtkTextBuffer.我无法弄清楚的是如何将它转换为a const gchar *,这是gtk_text_buffer_insert第三个参数.

有人可以帮帮我吗?

c gtk

0
推荐指数
1
解决办法
4785
查看次数

Android VideoView - 检测视频中的时间点

我正在使用VideoView来显示视频.我正在使用setOnPreparedListener和setOnCompletionListener来处理视频开始和结束之前和之后的内容.

我想知道如何在视频中检测某些时间点.例如,假设我想在视频播放10秒时将日志写入文件.如何检测10s标记?

谢谢克里斯

android listener android-videoview

5
推荐指数
1
解决办法
3942
查看次数

在下载所有异步JS文件之前,如何延迟运行一些JS代码?

更新:

我有以下代码:

<script type="text/javascript">
function addScript(url) {
    var script = document.createElement('script');
    script.src = url;
    document.getElementsByTagName('head')[0].appendChild(script);
}   
addScript('http://google.com/google-maps.js');
addScript('http://jquery.com/jquery.js');

...

// run code below this point once both google-maps.js & jquery.js has been downloaded and excuted

</script>
Run Code Online (Sandbox Code Playgroud)

在下载并执行所有必需的JS之前,如何防止代码执行?在上面的示例中,那些必需的文件是google-maps.js和jquery.js.

javascript events asynchronous

5
推荐指数
1
解决办法
813
查看次数

iphone谷歌地图获取地址的纬度和经度

谷歌地图是否有任何网址,它会返回地址的纬度和经度.我想在iPhone Map工具包中使用这些lat和long细节来绘制一些信息.

iphone google-maps mapkit

2
推荐指数
1
解决办法
2569
查看次数

使用'super'关键字绑定泛型

为什么我super只能使用通配符而不使用类型参数?

例如,在Collection界面中,为什么toArray方法不是这样写的

interface Collection<T>{
    <S super T> S[] toArray(S[] a);
}
Run Code Online (Sandbox Code Playgroud)

java generics language-design super

55
推荐指数
3
解决办法
1万
查看次数

从python中的字典中删除某些键

我正在尝试构建一个包含一系列集合的字典:

{Field1:{Value1, Value2, Value3}, Field2{Value4}}
Run Code Online (Sandbox Code Playgroud)

麻烦的是,我希望从字典中删除集合中只有一个值的任何字段.我一直在编写这样的代码:

for field in FieldSet:
    if len(FieldSet[field]) == 1:
        del(FieldSet[field])
Run Code Online (Sandbox Code Playgroud)

但收到错误"RuntimeError:字典在执行期间改变了大小".(这并不奇怪,因为那就是我正在做的事情.)如果我不得不采取某种解决方法,那不是全部和最终的结果,但有可能做到这一点吗?

python dictionary python-3.x

12
推荐指数
2
解决办法
3万
查看次数