TechTalk Genome Wire Object Protocol v4.2

WOP Project File

<WireObjectProtocolProject xmlns="urn:TechTalk:Genome.Wop.Project">
<References [refPath="assembly-lookup-path"] >
<Schema assembly="schema-assembly"/>


<Reference assembly="referred-assemby1"/>
<Reference assembly="referred-assemby2"/>
...
</References>


<Input>
<File path="view-definition-file1.xml" />
<File path="view-definition-file2.xml" />
...
</Input>


<Output>
<DtoAssembly
file="dto-assembly.dll"
[keyFile="dto-assembly-key-file.snk"]
[version="dto-assembly-version"]
[fileVersion="dto-assembly-file-version"]
[delaySigned="(true|false)"]
/>
<SerializerAssembly
file="serializer-assembly.dll"
[version="serializer-assembly-version"]
[fileVersion="serializer-assembly-file-version"]
[keyFile="serializer-assembly-key-file.snk"]
[delaySigned="(true|false)"]
/>
</Output>


<Settings>
<Dto
dtoSuperType="dto-base-class"
dtoRefSuperType="dtoref-base-class"
[dtoCollectionSuperType="dtocollection-base-class"]


[stripEntityNamespace="persistent-class-namespace-prefix"
dtoBaseNamespace="dto-class-namespace-prefix"
serializerBaseNamespace="serializer-class-namespace-prefix"]


[dtoTypeNamePostfix="dto-class-postfix"]
[dtoRefNamePostfix="dtoref-class-postfix"]
[dtoCollectionNamePostfix="dtocollection-class-postfix"]


[dtoMemberNaming="(DontChange|PascalCase|CamelCase)"]


[generateEqualsMethod="(true|false)"]
[generateTrackedDto="(true|false)"]
/>

<Serializer
[generateFactoryMethod="(true|false)"]
/>
<Configuration
[checkVersions="(true|false)"]
/>
</Settings>
</WireObjectProtocolProject>
assembly-lookup-path
A folder name specifying the assembly lookup path where the referenced assemblies will be searched. The assembly-lookup-path can be an absolute path or a path relative to the location of the project file. The folder of the project file will be used as lookup path if omitted.
schema-assembly
An assembly name specifies the Genome data domain schema assembly generated by Genome Schema Compiler (ddsc.exe). Exactly one schema-assembly has to be specified in the project file.
referred-assemby1, referred-assemby2, ...
Assembly names that specifies the assemblies containing the types referred from the view definition files.
view-definition-file1.xml, view-definition-file2.xml, ...
Specifying the source view definition files of the compilation. The files can be specified by an absolute file path or a file path relative to the location of the project file. For details about view definition files see View Definition File Syntax Guide.
dto-assembly.dll
The file name of the assembly that will contain the generated DTO, DTO reference and DTO collection types. The file name can be specified by an absolute file path or a file path relative to the location of the project file.
dto-assembly-version
The assembly version of the generated DTO assembly in major.minor.build.revision form. The system default version will be used if dto-assembly-version is omitted.
dto-assembly-file-version
The Win32 file version of the generated DTO assembly in major.minor.build.revision form. The system default version will be used if dto-assembly-file-version is omitted.
dto-assembly-key-file.snk
The name of the file containing the key pair used to generate a strong name for the DTO assembly. The file name can be specified by an absolute file path or a file path relative to the location of the project file. The generated assembly won't have strong name if this attribute is omitted.
serializer-assembly.dll
The file name of the assembly that will contain the generated serializer classes. The file name can be specified by an absolute file path or a file path relative to the location of the project file.
serializer-assembly-version
The assembly version of the generated serializer assembly in major.minor.build.revision form. The system default version will be used if serializer-assembly-version is omitted.
serializer-assembly-file-version
The Win32 file version of the generated serializer assembly in major.minor.build.revision form. The system default version will be used if serializer-assembly-file-version is omitted.
serializer-assembly-key-file.snk
The name of the file containing the key pair used to generate a strong name for the Serializer assembly. The file name can be specified by an absolute file path or a file path relative to the location of the project file. The generated assembly won't have strong name if this attribute is omitted.
delaySigned
If true the generated DTO/serializer assembly will be delay signed, if false or omitted the generated assembly will use the standard signing method.
dto-base-class
A type that specifies the common base class for the generated DTO classes.
dtoref-base-class
A type that specifies the common base class for the generated DTO reference classes.
dtocollection-base-class
A type that specifies the common base class for the generated DTO collection classes. The CollectionBase will be used if omitted.
persistent-class-namespace-prefix
A namespace prefix that will be replaced by dto-class-namespace-prefix and serializer-class-namespace-prefix when generating the DTO and serializer classes. The namespace of the persistent classes will be used for DTO and serializer classes if omitted.
dto-class-namespace-prefix
A namespace prefix that specifies the namespace of the generated DTO, DTO reference and DTO collection classes.
serializer-class-namespace-prefix
A namespace prefix that specifies the namespace of the generated serializer classes.
dto-class-postfix
A type name postfix that will be appended to the name of the persistent type when generating DTO classes. The postfix "Dto" will be used if omitted.
dtoref-class-postfix
A type name postfix that will be appended to the name of the persistent type when generating DTO reference classes. The postfix "DtoRef" will be used if omitted.
dtocollection-class-postfix
A type name postfix that will be appended to the name of the persistent type when generating DTO collection classes. The postfix "DtoCollection" will be used if omitted.
dtoMemberNaming
The naming convention that is used to determine the name of the DTO member name.
generateEqualsMethod
If true or omitted the generated DTO class will contain a "ValueEquals" method. This method can be used to compare a DTO object to another one. The comparation is not sensitive to the collection properties and the view used to serialize the singular references. Also a "GetValueHashCode" method is generated together with the "ValueEquals" which provides hash code for the value equality.

If the dto-base-class contains public virtual methods with these names, the generated methods will override the methods on the base class.

generateTrackedDto
If true or omitted the generated DTO class will be update tracked.
generateFactoryMethod
If true or omitted the generated Serializer class will contain a "CreateInstance" method can be used to initialize a new persistent instance from a DTO instance. The factory method will be generated for all persistent classes that have public default constructor defined.
checkVersions
Wopc.exe checks if the Genome assemblies refered from the business schema assemblies are of the same version as the assemblies refered from wopc.exe itself. In case of version mismatch an error will be reported. In order to suppress this check, the checkVersions switch has to be set to false. This attribute defaults to true.

Examples

<?xml version="1.0" ?>
<WireObjectProtocolProject xmlns="urn:TechTalk:Genome.Wop.Project">

    <References refPath="bin\debug\">
        <Schema assembly="Northwind.Business.Mapping"/>
        
        <Reference assembly="Northwind.Dto.Services"/>
        <Reference assembly="Northwind.Business"/>
    </References>
    
    <Input>
        <File path="ViewOrders.xml" />
        <File path="ProcessOrders.xml" />
        <File path="ManageEmployees.xml" />
    </Input>
    
    <Output>
        <DtoAssembly file="bin\debug\Northwind.Dto.dll" />
        <SerializerAssembly file="bin\debug\Northwind.Dto.Serializers.dll" />
    </Output>
    
    <Settings>
        <Dto
            dtoSuperType="Northwind.Dto.DtoSuperType, Northwind.Dto.Services"
            dtoRefSuperType="Northwind.Dto.DtoRefSuperType, Northwind.Dto.Services"
            dtoCollectionSuperType="System.Collections.CollectionBase, System"

            stripEntityNamespace="Northwind.Business"
            dtoBaseNamespace="Northwind.Dto"
            serializerBaseNamespace="Northwind.Dto.Serializers"
            
            dtoTypeNamePostfix="Dto"
            dtoRefNamePostfix="DtoRef"
            dtoCollectionNamePostfix="DtoCollection"
        />
    
    </Settings>
</WireObjectProtocolProject>
                

See Also

Wire Object Protocol Compiler Command Line Options