假设我有一个名为C#的接口IMyInterface定义如下:
// C# code
public interface IMyInterface
{
void Foo(string value);
string MyProperty { get; }
}
Run Code Online (Sandbox Code Playgroud)
假设我还有一个C++/CLI类MyConcreteClass,它实现了这个接口,其头部声明如下:
// C++/CLI header file
ref class MyConcreteClass : IMyInterface
{
public:
};
Run Code Online (Sandbox Code Playgroud)
如何在C++/CLI头中实现方法Foo和属性MyProperty?
我的尝试导致以下编译错误:
错误C3766:'MyConcreteClass'必须为接口方法提供一个实现'void IMyInterface :: Foo(System :: String ^ value)'
我有一个包含大量数据传输对象的集合,我需要通过WCF发送到Silverlight客户端.我正在使用默认的DataContractSerializer和HTTPS通道.
以下是一种DTO的示例.
[DataContract(Namespace = Constants.OrgStructureNamespace)]
public class EntityInfo : IExtensibleDataObject
{
[DataMember] public Guid EntityID { get; set; }
[DataMember] public EntityType EntityType { get; set; }
[DataMember] public IList<Guid> EntityVersions { get; set; }
[DataMember] public IList<Guid> OrganisationStructures { get; set; }
#region IExtensibleDataObject Members
...
#endregion
}
Run Code Online (Sandbox Code Playgroud)
服务器端的域实体使用GUID作为主键.这些序列化为36字节长的字符串.二进制形式的GUID应该只有16个字节长.
是否有一个技巧让DataContractSerializer将我的GUID序列化为二进制而不是作为冗长的字符串来提高性能?
如何确定IIS中托管的WCF服务根文件夹的绝对文件路径?
我已经调查System.ServiceModel.OperationContext并发现了各种相对URI路径,但没有包含服务根文件夹的绝对路径.